-
Notifications
You must be signed in to change notification settings - Fork 5
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
java process terminated with assertion v != nullptr #53
Comments
This becomes reproducible very offen and now I could get the backtrace: (gdb) t 105 |
The clue here, I believe is the What I'd like you to do is to put an assert(handle != 0) in The only places that call the constructor are the construction of the root namespace, at line 35, and the construction of a child namespace at line 68. Neither of these should be able to return a null. |
I included such assert and so far I'm not seing the crash anymore. I keep running it to see if I can reproduce with this assert. |
I don't see how they could be related, but I don't know where you're getting your namespace handle from. |
@EvanKirshenbaum Assertion reached. This occurred when looking for sensorSchema of a given historySchema, under isolated(Options.detachedSnapshot(), () -> {} ) call. Another important think: we have a HistorySchema that represents a given datetime, this one has a property named sensors that is in fact a SensorsListSchema and contains a dynamic namespace including the timestamp in the name. this name space is used to look for sensor ID in this history and not in the other. Note this work pretty fine without option detachedSnapshot(). |
Trying to give you more context, here is a subset of the code:
Converting the "lookup" by a "while loop", the code lost a lot of performance. The analytics took about 40s using "lookup" code, while it tooks about 2 minutes using the "while loop" code. |
Okay, I (sort of) think I see what's happening. Looking at catch (...)
{
// throwUnknownEx (jEnv);
} I'm not sure who commented out that line or why, and I won't be able to tell from just the external repository, but it looks as though an exception is being thrown that isn't one that's explicitly caught and translated into Java, so the exception is being ignored and the default value for the handle (in this case, zero) is being returned. I'd certainly recommend either reinstating the JNI throw by uncommenting the line or putting in a C++ Now, which exception is it? Namespaces throw two exceptions:
Unfortunately, both of those exceptions are caught in the Perhaps the best thing to do would be to comment out the entire |
Looking at the core code, the following exceptions are caught in this try block (in
The following exceptions are thrown in the core but not caught there:
The most likely is probably |
While running tomcat using MDS, java process terminated with following message:
java: mds-core/include/core/core_context.h:556: mpgc::gc_ptrmds::core::view mds::core::iso_context::shadow(const mpgc::gc_ptrmds::core::view&): Assertion `v != nullptr' failed.
I was reproduced once, I could not get the stacktrace yet.
The text was updated successfully, but these errors were encountered: