|Anonymous | Login | Signup for a new account||2019-02-22 22:05 CET|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0007161||OCaml||runtime system and C interface||public||2016-03-02 17:20||2016-03-24 16:45|
|Product Version||4.03.0+dev / +beta1|
|Target Version||4.03.0+dev / +beta1||Fixed in Version||4.03.0+dev / +beta1|
|Summary||0007161: Ephemerons lead to crash related to weak hash tables|
|Description||In Frama-C, we have some case studies where ephemerons lead to an assertion failure in one of our data structures, which is based on weak hash tables (Hptmap).|
This happens with OCaml 4.03+beta1. After investigating via a manual git bisect, I arrived at the following commit:
e33599880d087c - [GC] make ephemerons more efficient
(Note that this commit by itself does not compile; for commits between 03ed6a0f5169304f and ec173d03d6760920, I needed to cherry-pick commit 3a470635e9e2694d1 in order to be able to compile them.)
Until the previous commit (ff8c0c83c2f10e), everything works as usual. After e33599880d087c, a few case studies trigger an assertion that should never be triggered.
This report is mainly for notification purposes; we will discuss directly with François when he will be back to investigate the cause.
|Steps To Reproduce||Our case studies are based on open-source code, but require some complex settings; we can describe the required steps if needed, but initially it may be simpler to see it directly with François.|
|Tags||No tags attached.|
|I don't know the schedule of 4.03, does the investigation of this bug can wait the 7th march?|
Andre (@maro), can you test with https://github.com/bobot/ocaml/commit/c1801a87a6cf10efecdcbff751b27119c135f39a [^] ? Thank you.
Without the debug runtime instead of an assert the bug can cause an alive value to be removed from the hashconsing table, and so two identical values can have different tags.
Thanks! I'm still performing some tests, but so far no more crashes :)
Unfortunately, I'm also having some (probably unrelated) crashes with the GUI, and I kind of hoped they could be related to this issue, so that both would be fixed in one shot. The crashes still happen, however, so I'll investigate them and file a separate bug if needed.
I'll report back if further tests indicate something unexpected.
edited on: 2016-03-24 16:41
I am hoping to merge the fix for 0007157 (which is what bobot is referring to) into the upstream 4.03 branch this morning. It might be easier to test with that.
The GUI-related issues are almost definitely unrelated to this bug (still investigating).
I've used https://github.com/bobot/ocaml/tree/pr7157-4.03-take2 [^] in my tests, and the commits between 4.03 and the head of that branch do fix the issue in my tests.
Fixed by the 0007157 fix.
The GUI-related issues are 0007162.
|2016-03-02 17:20||maro||New Issue|
|2016-03-02 22:21||bobot||Note Added: 0015420|
|2016-03-03 01:01||bobot||Note Added: 0015421|
|2016-03-03 09:53||maro||Note Added: 0015423|
|2016-03-03 10:17||shinwell||Note Added: 0015424|
|2016-03-03 10:18||shinwell||Status||new => acknowledged|
|2016-03-03 10:18||shinwell||Product Version||=> 4.03.0+dev / +beta1|
|2016-03-03 11:29||maro||Note Added: 0015425|
|2016-03-24 16:41||doligez||Note Edited: 0015424||View Revisions|
|2016-03-24 16:43||doligez||Relationship added||related to 0007157|
|2016-03-24 16:43||doligez||Relationship added||related to 0007162|
|2016-03-24 16:44||doligez||Note Added: 0015600|
|2016-03-24 16:45||doligez||Status||acknowledged => closed|
|2016-03-24 16:45||doligez||Resolution||open => fixed|
|2016-03-24 16:45||doligez||Fixed in Version||=> 4.03.0+dev / +beta1|
|2016-03-24 16:45||doligez||Target Version||=> 4.03.0+dev / +beta1|
|2017-02-23 16:43||doligez||Category||OCaml runtime system => runtime system|
|2017-03-03 17:45||doligez||Category||runtime system => runtime system and C interface|
|Copyright © 2000 - 2011 MantisBT Group|