The demo is actually not running very long - mainly due to socket problems. The application mainly crashes in SstTcpTransport>>getNextIncomingConnection when it calls #findReadyConnection. Within this method (at the end) a "conn close" is executed and this statement crashes, because of "flush" against an instance of SstSocketStream and this stream instance has a problem: the value of the instance variable socket is nil !.
Debugger Stack Trace Report:
Error String: 'UndefinedObject does not understand sendAll:length:startingAt:flags:'
Resumable: false
Process
Name: HTTP Server Process for:
http://:9345/ (1)
Process State: suspended
Priority: 3
Executing in: SstSocketStream>>#flush
System Configuration Dump
Copyright:
VA Smalltalk V8.0.2 ; Image: 8.0.2
VM Timestamp: 4.0,(NC) 5/3/2010 (80)
(C) Copyright Instantiations 1994, 2010. All rights reserved.
(C) Copyright International Business Machines Corp. 1994, 2006. All rights reserved.
Time: 07:20:51
Date: 12.11.2010
Platform:
Virtual machine: ES
Bytecode version: 4.0
Manager version: 4.00
'OS' subsystem: 'WIN32s'
'CLIM' subsystem: 'ES'
'CP' subsystem: 'WIN32s'
'CLDT' subsystem: 'ES'
'CFS' subsystem: 'WIN32s'
'SCI' subsystem: 'WIN'
'CW' subsystem: 'WIN32s'
'CPM' subsystem: 'ES'
'CG' subsystem: 'WIN32s'
'CPIC' subsystem: 'WIN32s'
Current user: Marten Feldtmann
Connected Library:
Pathname: 192.168.70.2 :: /usr/local/VASmalltalk/7.5/manager/mgr801-cummulated.dat
Library version: 6
Size of library: 615942208 bytes
Has consistent EOF: true
Acquire read locks: false
Single user mode: false
Server address: '192.168.70.2'
Library Access:
Host system name: None
Use release lock mode: true
Native primitives library: emntv50
Emsrv primitives library: emsrv50
Memory:
Total allocation: 183560072 bytes
Available: 20464128 bytes
Fixed Space: 35304 bytes
New Space: 1045040 bytes
Old Space: 19418476 bytes
=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExError) An error has occurred.
aSignal=Signal on Exception: (ExError) An error has occurred.
exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
self=Exception: (ExError) An error has occurred.
aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
handler=nil
ExceptionalEvent>>#signalWithArguments:
self=Exception: (ExError) An error has occurred.
arguments=('UndefinedObject does not understand sendAll:length:startingAt:flags:')
ExceptionalEvent>>#signalWith:
self=Exception: (ExError) An error has occurred.
arg1='UndefinedObject does not understand sendAll:length:startingAt:flags:'
UndefinedObject(Object)>>#error:
self=nil
aString='UndefinedObject does not understand sendAll:length:startingAt:flags:'
MessageNotUnderstood>>#defaultAction
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in <optimized block>(Exception class)>>#newExceptionalEvent
signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood(Exception)>>#evaluateDefaultHandler:
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
aBlock=[] in Exception class>>#newExceptionalEvent
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExMessageNotUnderstood) An exception has occurred
aSignal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
exception=Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
self=Exception: (ExMessageNotUnderstood) An exception has occurred
aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
handler=nil
MessageNotUnderstood(Exception)>>#signal
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in SstInvocationHandler>>#defaultServerExceptionHandler
self=SstInvocationHandler(
http://:9345/)
sig=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
sstTag=#SstTag:Trap Exception
MessageNotUnderstood(Exception)>>#evaluate:
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
aBlock=[] in SstInvocationHandler>>#defaultServerExceptionHandler
[] in BlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
self=[] in SstInvocationHandler>>#serverProcessBlock
exception=Exception: (ExError) An error has occurred.
handlerBlock=[] in SstInvocationHandler>>#defaultServerExceptionHandler
exitBlock=[] in Block>>#when:do:
knownResult=an Object
retryBlock=[] in Block>>#when:do:exitWith:retryReturn:
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=nil
signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
[] in BlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
self=[] in SstSocketStream>>#close
exception=Exception: (ExSstNonFatalError) A non-fatal SST error has occurred.
handlerBlock=[] in SstSocketStream>>#close
exitBlock=[] in Block>>#when:do:
knownResult=an Object
retryBlock=[] in Block>>#when:do:exitWith:retryReturn:
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=[] in Block>>#when:do:exitWith:retryReturn:
signal=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
ExceptionalEvent>>#signalFor:
self=Exception: (ExMessageNotUnderstood) An exception has occurred
aSignalOrExceptionSelector=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
handler=[] in Block>>#when:do:exitWith:retryReturn:
MessageNotUnderstood(Exception)>>#signal
self=Signal on Exception: (ExMessageNotUnderstood) An exception has occurred
MessageNotUnderstood class(Exception class)>>#signalWith:
self=MessageNotUnderstood
signallerTag=' ...etc...)))
UndefinedObject(Object)>>#doesNotUnderstand:
self=nil
aMessage=' ...etc...))
SstSocketStream>>#flush
self=a SstSocketStream
rc=nil
[] in SstSocketStream>>#close
self=a SstSocketStream
BlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
self=[] in SstSocketStream>>#close
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=[] in Block>>#when:do:exitWith:retryReturn:
completionBlock=[]
BlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
self=[] in SstSocketStream>>#close
exception=Exception: (ExSstNonFatalError) A non-fatal SST error has occurred.
handlerBlock=[] in SstSocketStream>>#close
exitBlock=[] in Block>>#when:do:
knownResult=an Object
retryBlock=[] in Block>>#when:do:exitWith:retryReturn:
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=[] in Block>>#when:do:exitWith:retryReturn:
BlockContextTemplate(Block)>>#when:do:
self=[] in SstSocketStream>>#close
exception=Exception: (ExSstNonFatalError) A non-fatal SST error has occurred.
handlerBlock=[] in SstSocketStream>>#close
knownResult=an Object
result=nil
SstSocketStream>>#close
self=a SstSocketStream
SstHttpConnection(SstStreamedConnection)>>#basicClose
self=a SstHttpConnection
SstHttpConnection(SstConnection)>>#close
self=a SstHttpConnection
SstTcpTransport(SstSocketTransport)>>#findReadyConnection
self=SstTcpTransport(SstLocalEndpoint(
http://:9345/))
socket=SciSocket <P/Handle = 3016 Type = 1 Protocol = 0>
conn=a SstHttpConnection
nread=0
SstTcpTransport(SstConnectiveTransport)>>#getNextIncomingConnection
self=SstTcpTransport(SstLocalEndpoint(
http://:9345/))
connection=nil
SstLocalEndpoint>>#getNextIncomingConnection
self=SstLocalEndpoint(
http://:9345/)
SstInvocationHandler>>#retrieveAndProcessNextRequest
self=SstInvocationHandler(
http://:9345/)
connection=nil
innerIncomingWorkBlock=nil
incomingWorkBlock=nil
[] in SstInvocationHandler>>#serverProcessBlock
self=SstInvocationHandler(
http://:9345/)
result=SstInvocationHandler(
http://:9345/)
BlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo:
self=[] in SstInvocationHandler>>#serverProcessBlock
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=nil
completionBlock=[]
BlockContextTemplate(Block)>>#when:do:exitWith:retryReturn:
self=[] in SstInvocationHandler>>#serverProcessBlock
exception=Exception: (ExError) An error has occurred.
handlerBlock=[] in SstInvocationHandler>>#defaultServerExceptionHandler
exitBlock=[] in Block>>#when:do:
knownResult=an Object
retryBlock=[] in Block>>#when:do:exitWith:retryReturn:
handler=[] in Block>>#when:do:exitWith:retryReturn:
oldHandler=nil
BlockContextTemplate(Block)>>#when:do:
self=[] in SstInvocationHandler>>#serverProcessBlock
exception=Exception: (ExError) An error has occurred.
handlerBlock=[] in SstInvocationHandler>>#defaultServerExceptionHandler
knownResult=an Object
result=nil
[] in SstInvocationHandler>>#serverProcessBlock
self=SstInvocationHandler(
http://:9345/)
result=SstInvocationHandler(
http://:9345/)
[] in Process>>#executeBlock:withArguments:
self=Process:HTTP Server Process for:
http://:9345/ (1){suspended,3}
aBlock=[] in SstInvocationHandler>>#serverProcessBlock
args=()
Process>>#executeBlock:withArguments:
self=Process:HTTP Server Process for:
http://:9345/ (1){suspended,3}
aBlock=[] in SstInvocationHandler>>#serverProcessBlock
args=()
Process>>#newProcessOn:stackSize:withArguments:named:
self=Process:HTTP Server Process for:
http://:9345/ (1){suspended,3}
aBlock=[] in SstInvocationHandler>>#serverProcessBlock
stackSize=1024
args=()
procName='19585'
==============<STACK TRACE ENDS>=============