Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rebooting interpreter is incompatible after sclang crashed with booting server from startup #2397

Closed
telephon opened this issue Oct 13, 2016 · 4 comments

Comments

@telephon
Copy link
Member

telephon commented Oct 13, 2016

Rebooting interpreter leaves system in an ambiguous state (see below), when the server is booted from the startup file. Killing all servers and then recompiling the class library helps.

This seems to be related to #1914.

Reproducer:

  1. add s.boot in your startup file
  2. boot the server
  3. do something that hangs sclang, e.g. fork { loop { } }. (save your work)
  4. reboot the interpreter (from the IDE)
*** Welcome to SuperCollider 3.8dev. *** For help press Cmd-D.
ERROR: server failed to start
For advice: [http://supercollider.github.io/tutorials/server-failed-to-start]
Receiving notification messages from server localhost
ERROR: Primitive '_BasicNewClear' failed.
Index not an Integer
RECEIVER:
class Array (0x10f4c7c80) {
  instance variables [19]
    name : Symbol 'Array'
    nextclass : instance of Meta_Array2D (0x113b5c780, size=19, set=5)
    superclass : Symbol 'ArrayedCollection'
    subclasses : instance of Array (0x1147bf480, size=2, set=2)
    methods : instance of Array (0x1146433c0, size=102, set=7)
    instVarNames : nil
    classVarNames : nil
    iprototype : nil
    cprototype : nil
    constNames : nil
    constValues : nil
    instanceFormat : Integer 1
    instanceFlags : Integer 0
    classIndex : Integer 1994
    classFlags : Integer 3
    maxSubclassIndex : Integer 1997
    filenameSymbol : Symbol '/Volumes/data/sc/supercollider/SCClassLibrary/Common/Collections/Array.sc'
    charPos : Integer 0
    classVarIndex : Integer 5
}
CALL STACK:
    MethodError:reportError   0x177ffd9c8
        arg this = <instance of PrimitiveFailedError>
    Nil:handleError   0x177ffdb28
        arg this = nil
        arg error = <instance of PrimitiveFailedError>
    Thread:handleError   0x177ffe158
        arg this = <instance of Thread>
        arg error = <instance of PrimitiveFailedError>
    Object:throw   0x177ffdc88
        arg this = <instance of PrimitiveFailedError>
    Object:primitiveFailed   0x177ffe0a8
        arg this = <instance of Meta_Array>
    Meta_ContiguousBlockAllocator:new   0x177ffe8e8
        arg this = <instance of Meta_ContiguousBlockAllocator>
        arg size = 'too many users
'
        arg pos = 'too many users
'
    Server:newBusAllocators   0x12180b3c8
        arg this = <instance of Server>
        var numControl = 16384
        var numAudio = 112
        var controlBusOffset = 'too many users
'
        var audioBusOffset = 'too many users
'
        var offset = 'too many users
'
        var n = 1
    Server:newAllocators   0x177ffec58
        arg this = <instance of Server>
    Server:clientID_   0x177ffee68
        arg this = <instance of Server>
        arg val = 'too many users
'
    < FunctionDef in Method ServerStatusWatcher:sendNotifyRequest >   0x1780000f8
        arg msg = [*3]
    OSCArgsMatcher:value   0x121808948
        arg this = <instance of OSCArgsMatcher>
        arg testMsg = [*3]
        arg time = 4.003468472
        arg addr = <instance of NetAddr>
        arg recvPort = 57121
    OSCFuncAddrMessageMatcher:value   0x1218085e8
        arg this = <instance of OSCFuncAddrMessageMatcher>
        arg msg = [*3]
        arg time = 4.003468472
        arg testAddr = <instance of NetAddr>
        arg recvPort = 57121
    OSCMessageDispatcher:value   0x1218080c8
        arg this = <instance of OSCMessageDispatcher>
        arg msg = [*3]
        arg time = 4.003468472
        arg addr = <instance of NetAddr>
        arg recvPort = 57121
    Main:recvOSCmessage   0x121807d68
        arg this = <instance of Main>
        arg time = 4.003468472
        arg replyAddr = <instance of NetAddr>
        arg recvPort = 57121
        arg msg = [*3]
^^ The preceding error dump is for ERROR: Primitive '_BasicNewClear' failed.
Index not an Integer
RECEIVER: Array
@telephon
Copy link
Member Author

duplicate #1914

@telephon telephon reopened this Oct 13, 2016
@telephon
Copy link
Member Author

(edited the reproducer)

@telephon telephon changed the title rebooting interpreter is incompatible with booting server from startup rebooting interpreter is incompatible after sclang crashed with booting server from startup Oct 13, 2016
@jamshark70
Copy link
Contributor

Couple of notes:

  1. You don't have to boot the server from startup.scd.
  2. The error trace is for scsynth. In supernova, you get the confusing error post:

WARNING: Client ID exceeds maxLogins. Some buses and buffers may overlap for remote server: localhost

@adcxyz
Copy link
Contributor

adcxyz commented Dec 2, 2016

I think PR #2524 fixes this.

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

No branches or pull requests

3 participants