Opened 7 years ago

Last modified 7 years ago

#1337 closed defect

Runtime crashes inside glib main loop — at Version 1

Reported by: Jaume Delclòs Coll Owned by:
Priority: major Milestone: 4.12.0
Component: core libraries Version: 4.11.0
Keywords: stack corruption Cc:
Estimated difficulty: hard

Description (last modified by sjamaan)

Running scheme code from a foreign-lambda called using a glib callback can make the runtime crash. The bug is not easy to reproduce, since every small change to the code can make it easier or harder to trigger.

I have been able to trigger it only when doing a significant amount of work on the callback, but taking more time to return doesn't necessarily make it easier to trigger, and sometimes multiple calls are needed.

The output when crashing is this:

    test: runtime.c:2797: C_save_and_reclaim: Assertion `av > C_temporary_stack_bottom || av < C_temporary_stack_limit' failed.

I'm running this on the following release (installed from the Arch Linux repos):

    Version 4.11.0 (rev ce980c4)
    linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
    compiled 2016-05-28 on yves.more-magic.net (Linux)

I'll attach my test code, which depends on bind (egg) and glib.

Change History (4)

Changed 7 years ago by Jaume Delclòs Coll

Attachment: test.scm added

Test code

Changed 7 years ago by Jaume Delclòs Coll

Attachment: valgind.log added

Ran it on valgrind to see if anything weird popped up

comment:1 Changed 7 years ago by sjamaan

Component: unknowncore libraries
Description: modified (diff)
Estimated difficulty: hard
Keywords: stack corruption added
Milestone: someday4.12.0

Changed 7 years ago by Jaume Delclòs Coll

Attachment: easier.scm added

removed glib dependency

Note: See TracTickets for help on using tickets.