-
Notifications
You must be signed in to change notification settings - Fork 2
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
Still crashing #139
Comments
@opoudjis |
Just upgraded. Will let you know, though it is unpredictable; I compiled all of ISO-10303 yesterday, and got no crashes... |
|
What's concerning about this bug is that it keeps being random, it cannot be replicated... |
It is related to Ruby garbage collector. We thought the problem was that the C++ code was accessing Ruby objects that had already been deleted. Eliminating such possibilities helped to fix crashes with Ruby 3.0. With Ruby 3.2 segfault looks differently as if C++ code gets incorrect type information. This gem's native extension is C++ code generated by antlr4-native gem that uses template metaprogramming provided by Rice gem to wrap code generated by antlr generator. I will create several tests for Rice that cover our case. Anyway it will be painful |
I'm sorry. If you regenerate the collection often enough, you do eventually get it; the problem is that we expect external clients to use this... :( |
The key is to load the EXPRESS schemas enough (not about compiling the Metanorma collection). Wouldn't it be easy to trigger by loading all the schemas? e.g. exp_files = Pathname.new("iso-10303-srl/schemas/resources").glob('*.exp')
Expressir::Parser::Express.from_files(exp_files) |
UPD The issue is that antlr4-native gem generates a lot of code based on Rice::Array but there is no clear API documentation, tests or samples that explain how to use it. The plan is to develop a minmal sample and ask Rice maintainers for comments. |
This is a kind of minimal example: ruby-rice/rice#193 The issue is that we have to apply keepAlive as explained here: camertron/antlr4-native-rb#10 but if keepAlive is applied it causes another crash |
It looks like some of the crashes are caused by https://bugs.ruby-lang.org/issues/19319 |
This is a different crash. Occurs only on Ubuntu, Ruby 3.0 |
It's less frequent than before, and still inconsistent, but expressir on Ruby 3.2 is still crashing.
Latest instance:
The text was updated successfully, but these errors were encountered: