Thread overview
vibe-core sporadic internal errors
Apr 27, 2021
Imperatorn
April 27, 2021
I suspect vibe-core or event core may have some subtle bugs in them that are not easily repeatable, but often result in half-rendered web pages.

Has anyone else seen this? I recently updated to the latest vibe-core and vibe to see if the problem goes away and it doesn't. A log of the exceptions isn't super helpful:

```
Error occurred while accessing /management/sales/translate_option: code 500, (Internal Server Error)
Stack Trace: Internal Server Error

Error occurred while accessing /management/sales/translate_option: code 500, (Internal Server Error)
Stack Trace: Internal Server Error

Error occurred while accessing /management/sales/translate_option: code 500, (Internal Server Error)
Stack Trace: Internal Server Error

Error occurred while accessing /management/sales/translate_option: code 500, (Internal Server Error)
Stack Trace: Internal Server Error
```

I also get occasional segfaults. In the distant past, I had problems so frequent that the site required frequent refreshes to get to the next page, and some of my REST-based apps failed. But upgrading to the newest vibe made that much less frequent.

But still, it concerns me with the frequency that this happens. I don't know where to begin to debug this. I'll turn tracing on to see if it garners any more information.

-Steve
April 27, 2021
On Tuesday, 27 April 2021 at 15:48:01 UTC, Steven Schveighoffer wrote:
> I suspect vibe-core or event core may have some subtle bugs in them that are not easily repeatable, but often result in half-rendered web pages.
>
> [...]

Need a full trace to be able to get anywhere I think.
April 28, 2021
On 4/27/21 11:48 AM, Steven Schveighoffer wrote:
> I suspect vibe-core or event core may have some subtle bugs in them that are not easily repeatable, but often result in half-rendered web pages.
> 
> Has anyone else seen this? I recently updated to the latest vibe-core and vibe to see if the problem goes away and it doesn't. A log of the exceptions isn't super helpful:
> 
> ```
> Error occurred while accessing /management/sales/translate_option: code 500, (Internal Server Error)
> Stack Trace: Internal Server Error
> 
> ```

So I have figured out a couple things here.

1. I started building with `-b plain`, which removes the -debug flag from the compiler (for a long time, I didn't know this was the default for dub). Inadvertently, this made my exception printing result in the above instead of a full stack trace (which I was used to). I now print the stack trace even with -b plain, but my executable is down from 83MB to 35MB!

2. With the full stack trace, I determined that it's not vibe-d, but mysql-native which is throwing the exception. This was a "Server out of order" exception. Long story short, I found the bug in mysql-native and fixed it [1].

Anyone using mysql-native and vibe-d should update (once code.dlang.org gets around to refreshing it) to 3.0.1. Otherwise, you might get spurious out of order packet exceptions.

-Steve

[1] https://github.com/mysql-d/mysql-native/pull/226