-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unexplained assert on line 180 in vibe.core.stream #208
Comments
Similar error now in the network module:
Seems very similar, basically we wrote data, and the amount of data written didn't match the request. |
I still get these regularly. It crashes my server probably once a day or every other day. I'm going to attempt to switch to the latest release (Trying a workaround for #205), but this is definitely something that needs fixing if it's still in the latest version. Given the stray failures I've seen, I think there's something wrong somewhere deep in vibe-core (an error condition not handled maybe?). A further manifestation (I think) is occasionally, the socket to the MySQL server is closed prematurely (the Exception from vibe-core says "Reached end of stream while reading data." I noticed this one more prevalently, because I was not handling the exception and some structures related to permissions did not get fully initialized. So for 24 hours some people didn't have permissions they should have had. I never saw this before about a month ago, so I'm pretty sure this wasn't happening in a prior version of vibe-core. |
I've updated to 1.9.2, and enabled the VibeHighEventPriority, which has worked around #205 and also seems to have cleared up this issue (been running over a week and haven't seen it once). I'm going to leave this open, because it probably still is an issue at least in 1.8.1, and as always there is a possibility the bug is still present in the latest version but hasn't happened in my code. |
I've had a similar issue for the past few weeks. Crashing multiple times a day. I'm using 1.7.0 however. |
I'm wondering if this is still an issue without |
What are the consequences of turning it off? Should I try the latest release without this and see if things get better? I'd have to look at my logs to see if this is still happening regardless, this was almost 4 years ago... |
The issue that the new behavior aimed to fix was that in I/O (or other file descriptor triggered operations) heavy applications, code that yielded for non-I/O related reasons (timers/sleep, single-threaded synchronization etc) could simply starve. The new behavior treats both kinds of triggers more equally in terms of priority. If you get the chance to verify the issue still exists without |
This is version 1.8.1 of vibe-core.
I got a stray assert in otherwise working code. Very difficult to tell what the problem is, since it appears as a final function in the OutputStream interface. Running again the problem does not reoccur. It seems to be an assert possibly triggered by an environmental issue. It also might really be an error in vibe.d. I'm not sure exactly what the stream is that is not fulfilling this contract requirement, as things seem nested and hidden behind derivatives.
Here is the line of code: https://github.com/vibe-d/vibe-core/blob/v1.8.1/source/vibe/core/stream.d#L180
Not sure if this is helpful, but this is the stack trace.
The text was updated successfully, but these errors were encountered: