Skip to content

Win SBCL 64-bit - can trigger "GC Invariant Lost" in web server #15

Description

@supergrade

SBCL 1.0.54.100.mswinmt.1150-42bbfd5 64-bit

Pull the "Wreck" project
https://github.com/supergrade/wreck

Edit wreck.lisp to point prog-lisp-dir to the base directory of the code:
(defvar prog-lisp-dir "c:/prog/wreck/")

Now, put the contents of wreck.lisp into the clipboard

Start TWO command-line instances of SBCL Win (threading) 64-bit, SERVER and CLIENT

On the SERVER:

  1. Paste contents of wreck.lisp
  2. Run (start-server)

This should have it listening on port 82

On the CLIENT

  1. Paste contents of wreck.lisp
  2. Run (start-stress-test) - it runs multiple threads that keep connecting to port 82 local
  3. Run (show-progress) a few times. You should be seeing growing integers for both "Success" and "Errors". Errors are fine, you will see MUCH more errors than Successes; but that's okay (not the point of the exercise).

The client is now connecting/disconnecting from the server rapidly, with the server only accepting some of the connections. This is as-intended.

Within about 4 hours (for me) the SERVER will crash to LDB:
error:

  • fatal error encountered in SBCL pid 10604(tid 10225392):
    GC invariant lost, file "gencgc.c", line 3525

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions