{"action":"closed","issue":{"url":"https://api.github.com/repos/larcenists/larceny/issues/686","labels_url":"https://api.github.com/repos/larcenists/larceny/issues/686/labels{/name}","comments_url":"https://api.github.com/repos/larcenists/larceny/issues/686/comments","events_url":"https://api.github.com/repos/larcenists/larceny/issues/686/events","html_url":"https://github.com/larcenists/larceny/issues/686","id":54641560,"number":686,"title":"assertion failure in default garbage collector after bad call to set-cdr!","user":{"login":"WillClinger","id":4834511,"avatar_url":"https://avatars.githubusercontent.com/u/4834511?v=3","gravatar_id":"","url":"https://api.github.com/users/WillClinger","html_url":"https://github.com/WillClinger","followers_url":"https://api.github.com/users/WillClinger/followers","following_url":"https://api.github.com/users/WillClinger/following{/other_user}","gists_url":"https://api.github.com/users/WillClinger/gists{/gist_id}","starred_url":"https://api.github.com/users/WillClinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WillClinger/subscriptions","organizations_url":"https://api.github.com/users/WillClinger/orgs","repos_url":"https://api.github.com/users/WillClinger/repos","events_url":"https://api.github.com/users/WillClinger/events{/privacy}","received_events_url":"https://api.github.com/users/WillClinger/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/larcenists/larceny/labels/C%3A+IAssassin+backend","name":"C: IAssassin backend","color":"0000aa"},{"url":"https://api.github.com/repos/larcenists/larceny/labels/C%3A+runtime","name":"C: runtime","color":"0000aa"},{"url":"https://api.github.com/repos/larcenists/larceny/labels/P%3A+major","name":"P: major","color":"aa8888"},{"url":"https://api.github.com/repos/larcenists/larceny/labels/T%3A+defect","name":"T: defect","color":"cccccc"}],"state":"closed","locked":false,"assignee":{"login":"WillClinger","id":4834511,"avatar_url":"https://avatars.githubusercontent.com/u/4834511?v=3","gravatar_id":"","url":"https://api.github.com/users/WillClinger","html_url":"https://github.com/WillClinger","followers_url":"https://api.github.com/users/WillClinger/followers","following_url":"https://api.github.com/users/WillClinger/following{/other_user}","gists_url":"https://api.github.com/users/WillClinger/gists{/gist_id}","starred_url":"https://api.github.com/users/WillClinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WillClinger/subscriptions","organizations_url":"https://api.github.com/users/WillClinger/orgs","repos_url":"https://api.github.com/users/WillClinger/repos","events_url":"https://api.github.com/users/WillClinger/events{/privacy}","received_events_url":"https://api.github.com/users/WillClinger/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/larcenists/larceny/milestones/8","labels_url":"https://api.github.com/repos/larcenists/larceny/milestones/8/labels","id":388662,"number":8,"title":"Larceny 0.99","description":"None","creator":{"login":"larceny-trac-import","id":4951000,"avatar_url":"https://avatars.githubusercontent.com/u/4951000?v=3","gravatar_id":"","url":"https://api.github.com/users/larceny-trac-import","html_url":"https://github.com/larceny-trac-import","followers_url":"https://api.github.com/users/larceny-trac-import/followers","following_url":"https://api.github.com/users/larceny-trac-import/following{/other_user}","gists_url":"https://api.github.com/users/larceny-trac-import/gists{/gist_id}","starred_url":"https://api.github.com/users/larceny-trac-import/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larceny-trac-import/subscriptions","organizations_url":"https://api.github.com/users/larceny-trac-import/orgs","repos_url":"https://api.github.com/users/larceny-trac-import/repos","events_url":"https://api.github.com/users/larceny-trac-import/events{/privacy}","received_events_url":"https://api.github.com/users/larceny-trac-import/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":1,"state":"open","created_at":"2013-07-28T09:28:52Z","updated_at":"2015-01-17T17:36:40Z","due_on":"1969-12-31T19:00:00Z","closed_at":null},"comments":4,"created_at":"2015-01-17T00:18:32Z","updated_at":"2015-01-17T17:36:40Z","closed_at":"2015-01-17T17:36:40Z","body":"This bug occurs in IAssassin versions on both Linux and MacOSX, but I have\r\nnot been able to reproduce it in Petit Larceny.\r\n\r\nIn v0.97 and the most recent development version of v0.98b1, the following\r\ninput produces an assertion failure in the default garbage collector:\r\n```\r\n;;; Use this as standard input to recreate a gc bug.\r\n\r\n(define x (list 1 2 3 4 5))\r\n(begin (set-cdr! cdddr x) (cdr x))\r\nq ; quits out of the debugger\r\n(begin (set-cdr! (cdddr x) (cdr x)) 0)\r\nx ; initiates printing of a circular list\r\n```\r\nThe output looks like this, and is 6221 lines long including the error messages\r\nwritten to standard error:\r\n```\r\n% ./larceny < cheneyBUG.sch\r\nLarceny v0.98b1 (Jan 16 2015 18:21:45, precise:Posix:unified)\r\nlarceny.heap, built on Fri Jan 16 18:23:02 EST 2015\r\n\r\n> x\r\n\r\n> \r\n\r\nError: set-cdr!: 0 is not a pair.\r\nEntering debugger; type \"?\" for help.\r\ndebug> \r\n> 0\r\n\r\n> (1\r\n 2\r\n 3\r\n 4\r\n 2\r\n 3\r\n 4\r\n 2\r\n 3\r\n 4\r\n[...]\r\n 2\r\n 3\r\n 4\r\n 2\r\n 3\r\n 4\r\n Larceny Panic: Sys/cheney.c;831: Assertion failed.\r\nAbort trap\r\n```\r\nThe output for v0.97 is almost exactly the same, but replaces the last \"`2 3 4`\"\r\nand error message with this uninformative line:\r\n```\r\nSegmentation fault\r\n```\r\nOmitting the bogus call to `set-cdr!`, I am unable to reproduce the problem.\r\n\r\nIt looks to me as though the exception code for `set-cdr!`, possibly in\r\ncollaboration with the debugger, may be corrupting the heap."}}