{"action":"created","issue":{"url":"https://api.github.com/repos/rubinius/rubinius/issues/3658","repository_url":"https://api.github.com/repos/rubinius/rubinius","labels_url":"https://api.github.com/repos/rubinius/rubinius/issues/3658/labels{/name}","comments_url":"https://api.github.com/repos/rubinius/rubinius/issues/3658/comments","events_url":"https://api.github.com/repos/rubinius/rubinius/issues/3658/events","html_url":"https://github.com/rubinius/rubinius/issues/3658","id":157358669,"number":3658,"title":"Memory corruption causing sudden death of processes.","user":{"login":"digitalextremist","id":21095,"avatar_url":"https://avatars.githubusercontent.com/u/21095?v=3","gravatar_id":"","url":"https://api.github.com/users/digitalextremist","html_url":"https://github.com/digitalextremist","followers_url":"https://api.github.com/users/digitalextremist/followers","following_url":"https://api.github.com/users/digitalextremist/following{/other_user}","gists_url":"https://api.github.com/users/digitalextremist/gists{/gist_id}","starred_url":"https://api.github.com/users/digitalextremist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/digitalextremist/subscriptions","organizations_url":"https://api.github.com/users/digitalextremist/orgs","repos_url":"https://api.github.com/users/digitalextremist/repos","events_url":"https://api.github.com/users/digitalextremist/events{/privacy}","received_events_url":"https://api.github.com/users/digitalextremist/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-05-28T22:00:15Z","updated_at":"2016-05-31T17:12:44Z","closed_at":null,"body":"Seems to be similar error output to: #2674 \r\n\r\n---\r\n\r\nAt seemingly random points, one of the following errors will output to the _calling terminal_ ( not `STDOUT` or `STDERR` ) ... and there could be more:\r\n\r\n\r\n```\r\n*** Error in `ruby': free(): corrupted unsorted chunks: 0x00007fb21c000c20 ***\r\n*** Error in `ruby': malloc(): memory corruption: 0x00007fb21c001040 ***\r\n*** Error in `ruby': corrupted double-linked list: 0x00007fe72dbd6250 ***\r\n*** Error in `ruby': double free or corruption (!prev): 0x00007f19a448a930 ***\r\n*** Error in `ruby': malloc(): memory corruption: 0x00007f38beb4b888 ***\r\n*** Error in `ruby': double free or corruption (out): 0x00007f2740001070 ***\r\n```\r\n\r\n#### No discernable way to reproduce.\r\n\r\n## Configuration Details\r\n\r\n* `rubinius 3.33 (2.2.2 db6f477e 2016-05-23 3.6.0) [x86_64-linux-gnu]`\r\n* `Linux #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux`\r\n* `Ubuntu 14.04.4 LTS`\r\n\r\n#### No stacktrace; sudden death.\r\n\r\nSeems related to the thread context issue @brixen is already aware of. Have experienced in `3.33` as reporting here, as well as `3.32`, and `3.31` but cannot verify the exact messages produced by those."},"comment":{"url":"https://api.github.com/repos/rubinius/rubinius/issues/comments/222755725","html_url":"https://github.com/rubinius/rubinius/issues/3658#issuecomment-222755725","issue_url":"https://api.github.com/repos/rubinius/rubinius/issues/3658","id":222755725,"user":{"login":"brixen","id":85,"avatar_url":"https://avatars.githubusercontent.com/u/85?v=3","gravatar_id":"","url":"https://api.github.com/users/brixen","html_url":"https://github.com/brixen","followers_url":"https://api.github.com/users/brixen/followers","following_url":"https://api.github.com/users/brixen/following{/other_user}","gists_url":"https://api.github.com/users/brixen/gists{/gist_id}","starred_url":"https://api.github.com/users/brixen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brixen/subscriptions","organizations_url":"https://api.github.com/users/brixen/orgs","repos_url":"https://api.github.com/users/brixen/repos","events_url":"https://api.github.com/users/brixen/events{/privacy}","received_events_url":"https://api.github.com/users/brixen/received_events","type":"User","site_admin":false},"created_at":"2016-05-31T17:12:44Z","updated_at":"2016-05-31T17:12:44Z","body":"@digitalextremist any change you may be able to run one of these processes under a debugger? There are a number of places that `free()` could be called, so finding out where this is being called would help tremendously.\r\n\r\nA few places that `free()` may be called include: 1. C-API via a C-ext, 2. FFI disposing of memory, 3. in the large object region during sweep, 4. at various places in Rubinius when heap memory is needed, including parts of the MachineCode instances and InlineCache mechanism (and a lot of other places).\r\n\r\nSo, this could be FFI related (and that would possibly implicate C-API as I'm pretty sure you're using the ffi gem, but correct me if not), C-API related other than FFI, GC related, interpreter related, concurrency related, etc.\r\n\r\nIf it's not possible to run under a debugger, would it be possible to 1. try to extract a repro, or 2. give me some sort of access to attempt to repro myself?"}}
{"actor":{"display_login":"brixen"}}