OSProcess fork issue with Debian built VM

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
40 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

OSProcess fork issue with Debian built VM

Max Leske
 
Hi,

We're building the pharo.cog.spur VM on Debian (32 bits, itimer, on 64 with compat libs). Unfortunately, we're running into one particular problem with OSProcess. Some primitives like primitiveFileStat work but forking a child process (e.g. with #waitForCommand) produces a segfault. We've tried to find a difference between our build and the VM downloaded from bintray but we weren't very successful. One difference we do see is that our libc6 version is 2.19, while the one used in the travis build is 2.15 (although both binaries use the 2.19 version at runtime).

I'm aware that OSProcess hasn't been tagged as officially ready for Pharo 6 (which is where I'm using it). However, all of my tests with the prebuilt VM's have been successful.

Do any of you have an idea as to what the problem could be? I've attached the stack trace below. One possibly interesting thing is that the stack trace is being printed in an infinite loop, i.e. the process isn't killed but the VM just keeps printing out the same trace.

Cheers,
Max



could not open "[redacted]/crash.dmp" for writing.

Segmentation fault Tue May 16 14:52:22 2017


/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo
Pharo VM version: 5.0-$URL$  Tue May 16 12:22:16 UTC 2017 gcc 4.9.2 [Production Spur ITHB VM]
Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid: 8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid: 4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017
Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$
Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20 09:22:42 UTC 2017 i686 GNU/Linux
plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/]


C stack backtrace & registers:
        eax 0xffb43924 ebx 0xffb43840 ecx 0xffb438d8 edx 0xffb4388c
        edi 0xffb43710 esi 0xffb43710 ebp 0xffb437a8 esp 0xffb437f4
        eip 0xffb43a08
*[0xffb43a08]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805dc40]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f52d]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x81399a0]


Smalltalk stack dump:
0xffd15d1c I UnixOSProcessAccessor>forkAndExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir: 0xe39e3b8: a(n) UnixOSProcessAccessor
0xffd15d98 I UnixProcess>processProxy:forkAndExec:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd15dcc I ExternalUnixOSProcess>forkChild 0x9b79318: a(n) ExternalUnixOSProcess
0xffd15df0 I ExternalUnixOSProcess class>forkAndExec:arguments:environment:descriptors: 0xcd70c30: a(n) ExternalUnixOSProcess class
0xffd15e20 I UnixProcess>forkAndExec:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd15e50 I UnixProcess>forkJob:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd14c10 I UnixProcess>waitForCommand: 0xcdd1fd8: a(n) UnixProcess
0xffd14c2c M UndefinedObject>DoIt 0x9cc4c70: a(n) UndefinedObject
0xffd14c5c I OpalCompiler>evaluate 0x9b5efa8: a(n) OpalCompiler
0xffd14c7c I OpalCompiler(AbstractCompiler)>evaluate: 0x9b5efa8: a(n) OpalCompiler
0xffd14ca0 M [] in EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14cb8 M BlockClosure>on:do: 0x9b5ef70: a(n) BlockClosure
0xffd14ce4 I EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d0c I EvaluateCommandLineHandler>evaluateArguments 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d2c I EvaluateCommandLineHandler>activate 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d4c I EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith: 0xa1fd638: a(n) EvaluateCommandLineHandler class
0xffd14d6c M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14d84 M BlockClosure>on:do: 0x9b5e2d8: a(n) BlockClosure
0xffd14da4 M PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14dcc I PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand 0xe694a28: a(n) PharoCommandLineHandler
0xffd14dec I PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e08 M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e20 M BlockClosure>on:do: 0x9b5caf8: a(n) BlockClosure
0xffd14e40 M PharoCommandLineHandler(BasicCommandLineHandler)>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e60 I PharoCommandLineHandler>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd0bc1c I PharoCommandLineHandler class(CommandLineHandler class)>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bc44 I [] in PharoCommandLineHandler class>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bc64 I NonInteractiveUIManager(UIManager)>defer: 0xe61f510: a(n) NonInteractiveUIManager
0xffd0bc88 I PharoCommandLineHandler class>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bca8 M [] in BasicCommandLineHandler>activateSubCommand: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bcc0 M BlockClosure>on:do: 0xe694098: a(n) BlockClosure
0xffd0bce8 I BasicCommandLineHandler>activateSubCommand: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd10 I BasicCommandLineHandler>handleSubcommand 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd30 I BasicCommandLineHandler>handleArgument: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd4c M [] in BasicCommandLineHandler>activate 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd64 M BlockClosure>on:do: 0xe694210: a(n) BlockClosure
0xffd0bd8c I BasicCommandLineHandler>activate 0xe694080: a(n) BasicCommandLineHandler
0xffd0bda4 M [] in BasicCommandLineHandler class>startUp: 0xa07e5e8: a(n) BasicCommandLineHandler class
0xffd0bdbc M BlockClosure>cull: 0xe6942a0: a(n) BlockClosure
0xffd0bde4 I WorkingSession>executeDeferredStartupActions: 0xe61e630: a(n) WorkingSession
0xffd0be08 I WorkingSession>runStartup: 0xe61e630: a(n) WorkingSession
0xffd0be2c I WorkingSession>start: 0xe61e630: a(n) WorkingSession
0xffd0be58 I SessionManager>snapshot:andQuit: 0xb904f38: a(n) SessionManager
 0xe39f508 s [] in SmalltalkImage>snapshot:andQuit:
 0xe3a08b8 s CurrentExecutionEnvironment class>activate:for:
 0xe3a1010 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xe3a1810 s DefaultExecutionEnvironment class>beActiveDuring:
 0xe3a1070 s SmalltalkImage>snapshot:andQuit:
 0xe3a1870 s EvaluateCommandLineHandler>activate
 0xe3a1b78 s EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xe3a1e20 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xe3a1fd0 s BlockClosure>on:do:
 0xe3a2120 s PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xe3a3260 s PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
 0xe3a34e8 s PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
 0xe3a36e0 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xe3a3960 s BlockClosure>on:do:
 0xe3a3b38 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xe3a3cd0 s PharoCommandLineHandler>activate
 0xe3a3d30 s PharoCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xe3a3d90 s [] in PharoCommandLineHandler class>activateWith:
 0xe3a3df0 s NonInteractiveUIManager(UIManager)>defer:
 0xe3a3e68 s PharoCommandLineHandler class>activateWith:
 0xe3a3ed8 s [] in BasicCommandLineHandler>activateSubCommand:
 0xe3a3f38 s BlockClosure>on:do:
 0xe3a3fc8 s BasicCommandLineHandler>activateSubCommand:
 0xe3a4080 s BasicCommandLineHandler>handleSubcommand
 0xe3a4100 s BasicCommandLineHandler>handleArgument:
 0xe3a4198 s [] in BasicCommandLineHandler>activate
 0xe3a42f8 s BlockClosure>on:do:
 0xe3a44d0 s BasicCommandLineHandler>activate
 0xe3a4668 s [] in BasicCommandLineHandler class>startUp:
 0xe3a46c8 s BlockClosure>cull:
 0xe3a4740 s WorkingSession>executeDeferredStartupActions:
 0xe3a4800 s WorkingSession>runStartup:
 0xe3a4860 s WorkingSession>start:
 0xe36abe8 s SessionManager>snapshot:andQuit:
 0xe36ac58 s [] in SmalltalkImage>snapshot:andQuit:
 0xe36acb8 s CurrentExecutionEnvironment class>activate:for:
 0xe36ad18 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xe36ad78 s DefaultExecutionEnvironment class>beActiveDuring:
 0xe36ab78 s SmalltalkImage>snapshot:andQuit:
 0xbe92200 s EvaluateCommandLineHandler>activate
 0xbe94118 s EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xbe94768 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xbe94948 s BlockClosure>on:do:
 0xbe94b78 s PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xbe94c20 s PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
 0xbe94e18 s PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
 0xbe94eb8 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xbe95000 s BlockClosure>on:do:
 0xbe95078 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xbe72248 s PharoCommandLineHandler>activate
 0xbe71e50 s PharoCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xbe72c10 s [] in PharoCommandLineHandler class>activateWith:
 0xbe73468 s NonInteractiveUIManager(UIManager)>defer:
 0xbe71ed8 s PharoCommandLineHandler class>activateWith:
 0xbe72c70 s [] in BasicCommandLineHandler>activateSubCommand:
 0xbe734c8 s BlockClosure>on:do:
 0xbe71f80 s BasicCommandLineHandler>activateSubCommand:
 0xbe71ff8 s BasicCommandLineHandler>handleSubcommand
 0xbe72cd0 s BasicCommandLineHandler>handleArgument:
 0xbe72068 s [] in BasicCommandLineHandler>activate
 0xbe72d30 s BlockClosure>on:do:
 0xbe720f8 s BasicCommandLineHandler>activate
 0xbe72d90 s [] in BasicCommandLineHandler class>startUp:
 0xbe73528 s BlockClosure>cull:
 0xbe74378 s WorkingSession>executeDeferredStartupActions:
 0xbe72170 s WorkingSession>runStartup:
 0xbe721d0 s WorkingSession>start:
 0xbe6fd78 s SessionManager>snapshot:andQuit:
 0xbe6fdf8 s [] in SmalltalkImage>snapshot:andQuit:
 0xbe6fe58 s CurrentExecutionEnvironment class>activate:for:
 0xbe6fed8 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xbe6ff98 s DefaultExecutionEnvironment class>beActiveDuring:
 0xbe6ff38 s SmalltalkImage>snapshot:andQuit:
 0xbe6fff8 s [] in UndefinedObject>DoIt
 0xbe70058 s [] in BlockClosure>newProcess

Most recent primitives
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
at:put:
-
-
-
-
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
replaceFrom:to:with:startingAt:
at:put:
at:put:
at:put:
at:put:
at:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
species
value:
bitAnd:
**PrimitiveFailure**
bitAnd:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitClear:
class
class
objectAt:put:
stringHash:initialHash:
objectAt:put:
withArgs:executeMethod:
basicNew
basicNew
**StackOverflow**
stringHash:initialHash:
perform:
size
class
basicNew
quo:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
compare:with:collated:
basicNew:
basicNew
imageFile
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
basicIdentityHash
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
basicNew
replaceFrom:to:with:startingAt:
basicNew
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
size
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
class
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
lookupDirectory:filename:
basicNew
**StackOverflow**
basicIdentityHash
value
primGetCurrentWorkingDirectory
new:
at:put:
at:put:
at:put:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
primSizeOfPointer
value:
collect:
value:value:
inject:into:
primSizeOfPointer
timesRepeat:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
new:
collect:
inject:into:
replaceFrom:to:with:startingAt:
at:
at:
at:
at:
at:
at:
at:
at:
primGetCurrentWorkingDirectory
compare:with:collated:
primForkExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir:

stack page bytes 4096 available headroom 2788 minimum unused headroom 3004

        (Segmentation fault)
output file stack is empty.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Alistair Grant
 
Hi Max,

I can't answer your question directly, but just wondering why you are using the itimer VM when the are known issues with external calls, and not the heartbeat VM?

P.S. I would love to see OSProcess working in 32 bit mode.

Cheers,
Alistair

On 16 May 2017 14:57, "Max Leske" <[hidden email]> wrote:

Hi,

We're building the pharo.cog.spur VM on Debian (32 bits, itimer, on 64 with compat libs). Unfortunately, we're running into one particular problem with OSProcess. Some primitives like primitiveFileStat work but forking a child process (e.g. with #waitForCommand) produces a segfault. We've tried to find a difference between our build and the VM downloaded from bintray but we weren't very successful. One difference we do see is that our libc6 version is 2.19, while the one used in the travis build is 2.15 (although both binaries use the 2.19 version at runtime).

I'm aware that OSProcess hasn't been tagged as officially ready for Pharo 6 (which is where I'm using it). However, all of my tests with the prebuilt VM's have been successful.

Do any of you have an idea as to what the problem could be? I've attached the stack trace below. One possibly interesting thing is that the stack trace is being printed in an infinite loop, i.e. the process isn't killed but the VM just keeps printing out the same trace.

Cheers,
Max



could not open "[redacted]/crash.dmp" for writing.

Segmentation fault Tue May 16 14:52:22 2017


/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo
Pharo VM version: 5.0-$URL$  Tue May 16 12:22:16 UTC 2017 gcc 4.9.2 [Production Spur ITHB VM]
Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid: 8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid: 4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017
Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$
Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20 09:22:42 UTC 2017 i686 GNU/Linux
plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/]


C stack backtrace & registers:
        eax 0xffb43924 ebx 0xffb43840 ecx 0xffb438d8 edx 0xffb4388c
        edi 0xffb43710 esi 0xffb43710 ebp 0xffb437a8 esp 0xffb437f4
        eip 0xffb43a08
*[0xffb43a08]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805dc40]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f52d]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x81399a0]


Smalltalk stack dump:
0xffd15d1c I UnixOSProcessAccessor>forkAndExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir: 0xe39e3b8: a(n) UnixOSProcessAccessor
0xffd15d98 I UnixProcess>processProxy:forkAndExec:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd15dcc I ExternalUnixOSProcess>forkChild 0x9b79318: a(n) ExternalUnixOSProcess
0xffd15df0 I ExternalUnixOSProcess class>forkAndExec:arguments:environment:descriptors: 0xcd70c30: a(n) ExternalUnixOSProcess class
0xffd15e20 I UnixProcess>forkAndExec:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd15e50 I UnixProcess>forkJob:arguments:environment:descriptors: 0xcdd1fd8: a(n) UnixProcess
0xffd14c10 I UnixProcess>waitForCommand: 0xcdd1fd8: a(n) UnixProcess
0xffd14c2c M UndefinedObject>DoIt 0x9cc4c70: a(n) UndefinedObject
0xffd14c5c I OpalCompiler>evaluate 0x9b5efa8: a(n) OpalCompiler
0xffd14c7c I OpalCompiler(AbstractCompiler)>evaluate: 0x9b5efa8: a(n) OpalCompiler
0xffd14ca0 M [] in EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14cb8 M BlockClosure>on:do: 0x9b5ef70: a(n) BlockClosure
0xffd14ce4 I EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d0c I EvaluateCommandLineHandler>evaluateArguments 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d2c I EvaluateCommandLineHandler>activate 0x9b5e308: a(n) EvaluateCommandLineHandler
0xffd14d4c I EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith: 0xa1fd638: a(n) EvaluateCommandLineHandler class
0xffd14d6c M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14d84 M BlockClosure>on:do: 0x9b5e2d8: a(n) BlockClosure
0xffd14da4 M PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14dcc I PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand 0xe694a28: a(n) PharoCommandLineHandler
0xffd14dec I PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument: 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e08 M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e20 M BlockClosure>on:do: 0x9b5caf8: a(n) BlockClosure
0xffd14e40 M PharoCommandLineHandler(BasicCommandLineHandler)>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd14e60 I PharoCommandLineHandler>activate 0xe694a28: a(n) PharoCommandLineHandler
0xffd0bc1c I PharoCommandLineHandler class(CommandLineHandler class)>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bc44 I [] in PharoCommandLineHandler class>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bc64 I NonInteractiveUIManager(UIManager)>defer: 0xe61f510: a(n) NonInteractiveUIManager
0xffd0bc88 I PharoCommandLineHandler class>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bca8 M [] in BasicCommandLineHandler>activateSubCommand: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bcc0 M BlockClosure>on:do: 0xe694098: a(n) BlockClosure
0xffd0bce8 I BasicCommandLineHandler>activateSubCommand: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd10 I BasicCommandLineHandler>handleSubcommand 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd30 I BasicCommandLineHandler>handleArgument: 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd4c M [] in BasicCommandLineHandler>activate 0xe694080: a(n) BasicCommandLineHandler
0xffd0bd64 M BlockClosure>on:do: 0xe694210: a(n) BlockClosure
0xffd0bd8c I BasicCommandLineHandler>activate 0xe694080: a(n) BasicCommandLineHandler
0xffd0bda4 M [] in BasicCommandLineHandler class>startUp: 0xa07e5e8: a(n) BasicCommandLineHandler class
0xffd0bdbc M BlockClosure>cull: 0xe6942a0: a(n) BlockClosure
0xffd0bde4 I WorkingSession>executeDeferredStartupActions: 0xe61e630: a(n) WorkingSession
0xffd0be08 I WorkingSession>runStartup: 0xe61e630: a(n) WorkingSession
0xffd0be2c I WorkingSession>start: 0xe61e630: a(n) WorkingSession
0xffd0be58 I SessionManager>snapshot:andQuit: 0xb904f38: a(n) SessionManager
 0xe39f508 s [] in SmalltalkImage>snapshot:andQuit:
 0xe3a08b8 s CurrentExecutionEnvironment class>activate:for:
 0xe3a1010 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xe3a1810 s DefaultExecutionEnvironment class>beActiveDuring:
 0xe3a1070 s SmalltalkImage>snapshot:andQuit:
 0xe3a1870 s EvaluateCommandLineHandler>activate
 0xe3a1b78 s EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xe3a1e20 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xe3a1fd0 s BlockClosure>on:do:
 0xe3a2120 s PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xe3a3260 s PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
 0xe3a34e8 s PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
 0xe3a36e0 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xe3a3960 s BlockClosure>on:do:
 0xe3a3b38 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xe3a3cd0 s PharoCommandLineHandler>activate
 0xe3a3d30 s PharoCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xe3a3d90 s [] in PharoCommandLineHandler class>activateWith:
 0xe3a3df0 s NonInteractiveUIManager(UIManager)>defer:
 0xe3a3e68 s PharoCommandLineHandler class>activateWith:
 0xe3a3ed8 s [] in BasicCommandLineHandler>activateSubCommand:
 0xe3a3f38 s BlockClosure>on:do:
 0xe3a3fc8 s BasicCommandLineHandler>activateSubCommand:
 0xe3a4080 s BasicCommandLineHandler>handleSubcommand
 0xe3a4100 s BasicCommandLineHandler>handleArgument:
 0xe3a4198 s [] in BasicCommandLineHandler>activate
 0xe3a42f8 s BlockClosure>on:do:
 0xe3a44d0 s BasicCommandLineHandler>activate
 0xe3a4668 s [] in BasicCommandLineHandler class>startUp:
 0xe3a46c8 s BlockClosure>cull:
 0xe3a4740 s WorkingSession>executeDeferredStartupActions:
 0xe3a4800 s WorkingSession>runStartup:
 0xe3a4860 s WorkingSession>start:
 0xe36abe8 s SessionManager>snapshot:andQuit:
 0xe36ac58 s [] in SmalltalkImage>snapshot:andQuit:
 0xe36acb8 s CurrentExecutionEnvironment class>activate:for:
 0xe36ad18 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xe36ad78 s DefaultExecutionEnvironment class>beActiveDuring:
 0xe36ab78 s SmalltalkImage>snapshot:andQuit:
 0xbe92200 s EvaluateCommandLineHandler>activate
 0xbe94118 s EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xbe94768 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xbe94948 s BlockClosure>on:do:
 0xbe94b78 s PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
 0xbe94c20 s PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
 0xbe94e18 s PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
 0xbe94eb8 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xbe95000 s BlockClosure>on:do:
 0xbe95078 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
 0xbe72248 s PharoCommandLineHandler>activate
 0xbe71e50 s PharoCommandLineHandler class(CommandLineHandler class)>activateWith:
 0xbe72c10 s [] in PharoCommandLineHandler class>activateWith:
 0xbe73468 s NonInteractiveUIManager(UIManager)>defer:
 0xbe71ed8 s PharoCommandLineHandler class>activateWith:
 0xbe72c70 s [] in BasicCommandLineHandler>activateSubCommand:
 0xbe734c8 s BlockClosure>on:do:
 0xbe71f80 s BasicCommandLineHandler>activateSubCommand:
 0xbe71ff8 s BasicCommandLineHandler>handleSubcommand
 0xbe72cd0 s BasicCommandLineHandler>handleArgument:
 0xbe72068 s [] in BasicCommandLineHandler>activate
 0xbe72d30 s BlockClosure>on:do:
 0xbe720f8 s BasicCommandLineHandler>activate
 0xbe72d90 s [] in BasicCommandLineHandler class>startUp:
 0xbe73528 s BlockClosure>cull:
 0xbe74378 s WorkingSession>executeDeferredStartupActions:
 0xbe72170 s WorkingSession>runStartup:
 0xbe721d0 s WorkingSession>start:
 0xbe6fd78 s SessionManager>snapshot:andQuit:
 0xbe6fdf8 s [] in SmalltalkImage>snapshot:andQuit:
 0xbe6fe58 s CurrentExecutionEnvironment class>activate:for:
 0xbe6fed8 s DefaultExecutionEnvironment(ExecutionEnvironment)>beActiveDuring:
 0xbe6ff98 s DefaultExecutionEnvironment class>beActiveDuring:
 0xbe6ff38 s SmalltalkImage>snapshot:andQuit:
 0xbe6fff8 s [] in UndefinedObject>DoIt
 0xbe70058 s [] in BlockClosure>newProcess

Most recent primitives
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
at:put:
-
-
-
-
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
replaceFrom:to:with:startingAt:
at:put:
at:put:
at:put:
at:put:
at:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
species
value:
bitAnd:
**PrimitiveFailure**
bitAnd:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitClear:
class
class
objectAt:put:
stringHash:initialHash:
objectAt:put:
withArgs:executeMethod:
basicNew
basicNew
**StackOverflow**
stringHash:initialHash:
perform:
size
class
basicNew
quo:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
compare:with:collated:
basicNew:
basicNew
imageFile
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
basicIdentityHash
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
basicNew
replaceFrom:to:with:startingAt:
basicNew
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
size
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
class
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
lookupDirectory:filename:
basicNew
**StackOverflow**
basicIdentityHash
value
primGetCurrentWorkingDirectory
new:
at:put:
at:put:
at:put:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
primSizeOfPointer
value:
collect:
value:value:
inject:into:
primSizeOfPointer
timesRepeat:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
new:
collect:
inject:into:
replaceFrom:to:with:startingAt:
at:
at:
at:
at:
at:
at:
at:
at:
primGetCurrentWorkingDirectory
compare:with:collated:
primForkExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir:

stack page bytes 4096 available headroom 2788 minimum unused headroom 3004

        (Segmentation fault)
output file stack is empty.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 
Hi Alistair,


On 16 May 2017, at 15:32, [hidden email] wrote:

Hi Max,

I can't answer your question directly, but just wondering why you are using
the itimer VM when the are known issues with external calls, and not the
heartbeat VM?

Because of the root user issue, and also because I don't care about that much at the moment. I'm still experimenting and for those experiments it doesn't matter which VM I use. Thirdly, the itimer VM is the one I get when I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient to get the latest VM, and to minimise differences between the VM's we built the same one. I will definitely consider using the threaded VM for production.


P.S. I would love to see OSProcess working in 32 bit mode.

Well, it does work already, just not when we build the VM ourselves :/

Cheers,
Max


Cheers,
Alistair

On 16 May 2017 14:57, "Max Leske" <[hidden email]> wrote:


Hi,

We're building the pharo.cog.spur VM on Debian (32 bits, itimer, on 64
with compat libs). Unfortunately, we're running into one particular problem
with OSProcess. Some primitives like primitiveFileStat work but forking a
child process (e.g. with #waitForCommand) produces a segfault. We've tried
to find a difference between our build and the VM downloaded from bintray
but we weren't very successful. One difference we do see is that our libc6
version is 2.19, while the one used in the travis build is 2.15 (although
both binaries use the 2.19 version at runtime).

I'm aware that OSProcess hasn't been tagged as officially ready for Pharo
6 (which is where I'm using it). However, all of my tests with the prebuilt
VM's have been successful.

Do any of you have an idea as to what the problem could be? I've attached
the stack trace below. One possibly interesting thing is that the stack
trace is being printed in an infinite loop, i.e. the process isn't killed
but the VM just keeps printing out the same trace.

Cheers,
Max



could not open "[redacted]/crash.dmp" for writing.

Segmentation fault Tue May 16 14:52:22 2017


/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo
Pharo VM version: 5.0-$URL$  Tue May 16 12:22:16 UTC 2017 gcc 4.9.2
[Production Spur ITHB VM]
Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid:
8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid:
4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017
Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$
Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20 09:22:42
UTC 2017 i686 GNU/Linux
plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default:
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/]


C stack backtrace & registers:
       eax 0xffb43924 ebx 0xffb43840 ecx 0xffb438d8 edx 0xffb4388c
       edi 0xffb43710 esi 0xffb43710 ebp 0xffb437a8 esp 0xffb437f4
       eip 0xffb43a08
*[0xffb43a08]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805dc40]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f52d]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x805f556]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf7745d40]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(abort+0x223)[0xf752db03]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo[0x81399a0]


Smalltalk stack dump:
0xffd15d1c I UnixOSProcessAccessor>forkAndExec:stdIn:stdOut:
stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir: 0xe39e3b8: a(n)
UnixOSProcessAccessor
0xffd15d98 I UnixProcess>processProxy:forkAndExec:arguments:environment:descriptors:
0xcdd1fd8: a(n) UnixProcess
0xffd15dcc I ExternalUnixOSProcess>forkChild 0x9b79318: a(n)
ExternalUnixOSProcess
0xffd15df0 I ExternalUnixOSProcess class>forkAndExec:arguments:environment:descriptors:
0xcd70c30: a(n) ExternalUnixOSProcess class
0xffd15e20 I UnixProcess>forkAndExec:arguments:environment:descriptors:
0xcdd1fd8: a(n) UnixProcess
0xffd15e50 I UnixProcess>forkJob:arguments:environment:descriptors:
0xcdd1fd8: a(n) UnixProcess
0xffd14c10 I UnixProcess>waitForCommand: 0xcdd1fd8: a(n) UnixProcess
0xffd14c2c M UndefinedObject>DoIt 0x9cc4c70: a(n) UndefinedObject
0xffd14c5c I OpalCompiler>evaluate 0x9b5efa8: a(n) OpalCompiler
0xffd14c7c I OpalCompiler(AbstractCompiler)>evaluate: 0x9b5efa8: a(n)
OpalCompiler
0xffd14ca0 M [] in EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n)
EvaluateCommandLineHandler
0xffd14cb8 M BlockClosure>on:do: 0x9b5ef70: a(n) BlockClosure
0xffd14ce4 I EvaluateCommandLineHandler>evaluate: 0x9b5e308: a(n)
EvaluateCommandLineHandler
0xffd14d0c I EvaluateCommandLineHandler>evaluateArguments 0x9b5e308: a(n)
EvaluateCommandLineHandler
0xffd14d2c I EvaluateCommandLineHandler>activate 0x9b5e308: a(n)
EvaluateCommandLineHandler
0xffd14d4c I EvaluateCommandLineHandler class(CommandLineHandler
class)>activateWith: 0xa1fd638: a(n) EvaluateCommandLineHandler class
0xffd14d6c M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
0xe694a28: a(n) PharoCommandLineHandler
0xffd14d84 M BlockClosure>on:do: 0x9b5e2d8: a(n) BlockClosure
0xffd14da4 M PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand:
0xe694a28: a(n) PharoCommandLineHandler
0xffd14dcc I PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand
0xe694a28: a(n) PharoCommandLineHandler
0xffd14dec I PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument:
0xe694a28: a(n) PharoCommandLineHandler
0xffd14e08 M [] in PharoCommandLineHandler(BasicCommandLineHandler)>activate
0xe694a28: a(n) PharoCommandLineHandler
0xffd14e20 M BlockClosure>on:do: 0x9b5caf8: a(n) BlockClosure
0xffd14e40 M PharoCommandLineHandler(BasicCommandLineHandler)>activate
0xe694a28: a(n) PharoCommandLineHandler
0xffd14e60 I PharoCommandLineHandler>activate 0xe694a28: a(n)
PharoCommandLineHandler
0xffd0bc1c I PharoCommandLineHandler class(CommandLineHandler
class)>activateWith: 0xa07e658: a(n) PharoCommandLineHandler class
0xffd0bc44 I [] in PharoCommandLineHandler class>activateWith: 0xa07e658:
a(n) PharoCommandLineHandler class
0xffd0bc64 I NonInteractiveUIManager(UIManager)>defer: 0xe61f510: a(n)
NonInteractiveUIManager
0xffd0bc88 I PharoCommandLineHandler class>activateWith: 0xa07e658: a(n)
PharoCommandLineHandler class
0xffd0bca8 M [] in BasicCommandLineHandler>activateSubCommand: 0xe694080:
a(n) BasicCommandLineHandler
0xffd0bcc0 M BlockClosure>on:do: 0xe694098: a(n) BlockClosure
0xffd0bce8 I BasicCommandLineHandler>activateSubCommand: 0xe694080: a(n)
BasicCommandLineHandler
0xffd0bd10 I BasicCommandLineHandler>handleSubcommand 0xe694080: a(n)
BasicCommandLineHandler
0xffd0bd30 I BasicCommandLineHandler>handleArgument: 0xe694080: a(n)
BasicCommandLineHandler
0xffd0bd4c M [] in BasicCommandLineHandler>activate 0xe694080: a(n)
BasicCommandLineHandler
0xffd0bd64 M BlockClosure>on:do: 0xe694210: a(n) BlockClosure
0xffd0bd8c I BasicCommandLineHandler>activate 0xe694080: a(n)
BasicCommandLineHandler
0xffd0bda4 M [] in BasicCommandLineHandler class>startUp: 0xa07e5e8: a(n)
BasicCommandLineHandler class
0xffd0bdbc M BlockClosure>cull: 0xe6942a0: a(n) BlockClosure
0xffd0bde4 I WorkingSession>executeDeferredStartupActions: 0xe61e630:
a(n) WorkingSession
0xffd0be08 I WorkingSession>runStartup: 0xe61e630: a(n) WorkingSession
0xffd0be2c I WorkingSession>start: 0xe61e630: a(n) WorkingSession
0xffd0be58 I SessionManager>snapshot:andQuit: 0xb904f38: a(n)
SessionManager
0xe39f508 s [] in SmalltalkImage>snapshot:andQuit:
0xe3a08b8 s CurrentExecutionEnvironment class>activate:for:
0xe3a1010 s DefaultExecutionEnvironment(ExecutionEnvironment)>
beActiveDuring:
0xe3a1810 s DefaultExecutionEnvironment class>beActiveDuring:
0xe3a1070 s SmalltalkImage>snapshot:andQuit:
0xe3a1870 s EvaluateCommandLineHandler>activate
0xe3a1b78 s EvaluateCommandLineHandler class(CommandLineHandler
class)>activateWith:
0xe3a1e20 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>
activateSubCommand:
0xe3a1fd0 s BlockClosure>on:do:
0xe3a2120 s PharoCommandLineHandler(BasicCommandLineHandler)>
activateSubCommand:
0xe3a3260 s PharoCommandLineHandler(BasicCommandLineHandler)>
handleSubcommand
0xe3a34e8 s PharoCommandLineHandler(BasicCommandLineHandler)>
handleArgument:
0xe3a36e0 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>
activate
0xe3a3960 s BlockClosure>on:do:
0xe3a3b38 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
0xe3a3cd0 s PharoCommandLineHandler>activate
0xe3a3d30 s PharoCommandLineHandler class(CommandLineHandler
class)>activateWith:
0xe3a3d90 s [] in PharoCommandLineHandler class>activateWith:
0xe3a3df0 s NonInteractiveUIManager(UIManager)>defer:
0xe3a3e68 s PharoCommandLineHandler class>activateWith:
0xe3a3ed8 s [] in BasicCommandLineHandler>activateSubCommand:
0xe3a3f38 s BlockClosure>on:do:
0xe3a3fc8 s BasicCommandLineHandler>activateSubCommand:
0xe3a4080 s BasicCommandLineHandler>handleSubcommand
0xe3a4100 s BasicCommandLineHandler>handleArgument:
0xe3a4198 s [] in BasicCommandLineHandler>activate
0xe3a42f8 s BlockClosure>on:do:
0xe3a44d0 s BasicCommandLineHandler>activate
0xe3a4668 s [] in BasicCommandLineHandler class>startUp:
0xe3a46c8 s BlockClosure>cull:
0xe3a4740 s WorkingSession>executeDeferredStartupActions:
0xe3a4800 s WorkingSession>runStartup:
0xe3a4860 s WorkingSession>start:
0xe36abe8 s SessionManager>snapshot:andQuit:
0xe36ac58 s [] in SmalltalkImage>snapshot:andQuit:
0xe36acb8 s CurrentExecutionEnvironment class>activate:for:
0xe36ad18 s DefaultExecutionEnvironment(ExecutionEnvironment)>
beActiveDuring:
0xe36ad78 s DefaultExecutionEnvironment class>beActiveDuring:
0xe36ab78 s SmalltalkImage>snapshot:andQuit:
0xbe92200 s EvaluateCommandLineHandler>activate
0xbe94118 s EvaluateCommandLineHandler class(CommandLineHandler
class)>activateWith:
0xbe94768 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>
activateSubCommand:
0xbe94948 s BlockClosure>on:do:
0xbe94b78 s PharoCommandLineHandler(BasicCommandLineHandler)>
activateSubCommand:
0xbe94c20 s PharoCommandLineHandler(BasicCommandLineHandler)>
handleSubcommand
0xbe94e18 s PharoCommandLineHandler(BasicCommandLineHandler)>
handleArgument:
0xbe94eb8 s [] in PharoCommandLineHandler(BasicCommandLineHandler)>
activate
0xbe95000 s BlockClosure>on:do:
0xbe95078 s PharoCommandLineHandler(BasicCommandLineHandler)>activate
0xbe72248 s PharoCommandLineHandler>activate
0xbe71e50 s PharoCommandLineHandler class(CommandLineHandler
class)>activateWith:
0xbe72c10 s [] in PharoCommandLineHandler class>activateWith:
0xbe73468 s NonInteractiveUIManager(UIManager)>defer:
0xbe71ed8 s PharoCommandLineHandler class>activateWith:
0xbe72c70 s [] in BasicCommandLineHandler>activateSubCommand:
0xbe734c8 s BlockClosure>on:do:
0xbe71f80 s BasicCommandLineHandler>activateSubCommand:
0xbe71ff8 s BasicCommandLineHandler>handleSubcommand
0xbe72cd0 s BasicCommandLineHandler>handleArgument:
0xbe72068 s [] in BasicCommandLineHandler>activate
0xbe72d30 s BlockClosure>on:do:
0xbe720f8 s BasicCommandLineHandler>activate
0xbe72d90 s [] in BasicCommandLineHandler class>startUp:
0xbe73528 s BlockClosure>cull:
0xbe74378 s WorkingSession>executeDeferredStartupActions:
0xbe72170 s WorkingSession>runStartup:
0xbe721d0 s WorkingSession>start:
0xbe6fd78 s SessionManager>snapshot:andQuit:
0xbe6fdf8 s [] in SmalltalkImage>snapshot:andQuit:
0xbe6fe58 s CurrentExecutionEnvironment class>activate:for:
0xbe6fed8 s DefaultExecutionEnvironment(ExecutionEnvironment)>
beActiveDuring:
0xbe6ff98 s DefaultExecutionEnvironment class>beActiveDuring:
0xbe6ff38 s SmalltalkImage>snapshot:andQuit:
0xbe6fff8 s [] in UndefinedObject>DoIt
0xbe70058 s [] in BlockClosure>newProcess

Most recent primitives
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
size
at:
at:put:
at:put:
-
-
-
-
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
replaceFrom:to:with:startingAt:
at:put:
at:put:
at:put:
at:put:
at:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
objectAt:put:
species
value:
bitAnd:
**PrimitiveFailure**
bitAnd:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitOr:
**PrimitiveFailure**
bitClear:
class
class
objectAt:put:
stringHash:initialHash:
objectAt:put:
withArgs:executeMethod:
basicNew
basicNew
**StackOverflow**
stringHash:initialHash:
perform:
size
class
basicNew
quo:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
compare:with:collated:
basicNew:
basicNew
imageFile
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
basicIdentityHash
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
basicNew
replaceFrom:to:with:startingAt:
basicNew
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
indexOfAscii:inString:startingAt:
replaceFrom:to:with:startingAt:
compare:with:collated:
size
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
class
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
stringHash:initialHash:
replaceFrom:to:with:startingAt:
translate:from:to:table:
compare:with:collated:
findFirstInString:inSet:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
lookupDirectory:filename:
basicNew
**StackOverflow**
basicIdentityHash
value
primGetCurrentWorkingDirectory
new:
at:put:
at:put:
at:put:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
value:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
primSizeOfPointer
value:
collect:
value:value:
inject:into:
primSizeOfPointer
timesRepeat:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
replaceFrom:to:with:startingAt:
new:
collect:
inject:into:
replaceFrom:to:with:startingAt:
at:
at:
at:
at:
at:
at:
at:
at:
primGetCurrentWorkingDirectory
compare:with:collated:
primForkExec:stdIn:stdOut:stdErr:argBuf:argOffsets:
envBuf:envOffsets:workingDir:

stack page bytes 4096 available headroom 2788 minimum unused headroom 3004

       (Segmentation fault)
output file stack is empty.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Alistair Grant
 
Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email]> wrote:
 
Hi Alistair,


On 16 May 2017, at 15:32, [hidden email] wrote:

Hi Max,

I can't answer your question directly, but just wondering why you are using
the itimer VM when the are known issues with external calls, and not the
heartbeat VM?

Because of the root user issue, and also because I don't care about that much at the moment. I'm still experimenting and for those experiments it doesn't matter which VM I use. Thirdly, the itimer VM is the one I get when I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient to get the latest VM, and to minimise differences between the VM's we built the same one. I will definitely consider using the threaded VM for production.


P.S. I would love to see OSProcess working in 32 bit mode.

Well, it does work already, just not when we build the VM ourselves :/

Interesting, I had the impression that for Pharo 6 OSProcess didn't work in 32bits, only 64, but I'm also building my own VM.  I'm away from my PC, but I'll try and take a look.

Thanks, 
Alistair

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Alistair Grant
 
On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:

> Hi Max,
>
> On 16 May 2017 15:40, "Max Leske" <[hidden email]> wrote:
>      
>     Hi Alistair,
>
>         On 16 May 2017, at 15:32, [hidden email]
>         wrote:
>
>         Hi Max,
>
>         I can't answer your question directly, but just wondering why you are
>         using
>         the itimer VM when the are known issues with external calls, and not
>         the
>         heartbeat VM?
>
>     Because of the root user issue, and also because I don't care about that
>     much at the moment. I'm still experimenting and for those experiments it
>     doesn't matter which VM I use. Thirdly, the itimer VM is the one I get when
>     I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient to get
>     the latest VM, and to minimise differences between the VM's we built the
>     same one. I will definitely consider using the threaded VM for production.
>
>         P.S. I would love to see OSProcess working in 32 bit mode.
>
>     Well, it does work already, just not when we build the VM ourselves :/
>
> Interesting, I had the impression that for Pharo 6 OSProcess didn't work in
> 32bits, only 64, but I'm also building my own VM.  I'm away from my PC, but
> I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org, but locks up when using the VM I
compiled.

Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 

On 17 May 2017, at 14:00, [hidden email] wrote:

On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:
Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email]> wrote:

   Hi Alistair,

       On 16 May 2017, at 15:32, [hidden email]
       wrote:

       Hi Max,

       I can't answer your question directly, but just wondering why you are
       using
       the itimer VM when the are known issues with external calls, and not
       the
       heartbeat VM?

   Because of the root user issue, and also because I don't care about that
   much at the moment. I'm still experimenting and for those experiments it
   doesn't matter which VM I use. Thirdly, the itimer VM is the one I get when
   I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient to get
   the latest VM, and to minimise differences between the VM's we built the
   same one. I will definitely consider using the threaded VM for production.

       P.S. I would love to see OSProcess working in 32 bit mode.

   Well, it does work already, just not when we build the VM ourselves :/

Interesting, I had the impression that for Pharo 6 OSProcess didn't work in
32bits, only 64, but I'm also building my own VM.  I'm away from my PC, but
I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org, but locks up when using the VM I
compiled.

Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks Alistair. Can you tell me which library versions you're linking against at build time?

Cheers,
Max


Thanks!
Alistair


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Alistair Grant
 
Hi Max,

On Wed, May 17, 2017 at 02:36:27PM +0200, Max Leske wrote:

>     On 17 May 2017, at 14:00, [hidden email] wrote:
>
>     I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
>     downloaded from get.pharo.org, but locks up when using the VM I
>     compiled.
>
>     Both VMs (threaded heartbeat) are based on the same source code, i.e.:
>
>     VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>     Date: Tue May 2 16:26:41 2017 -0700 $
>
>     I'll try and take a look at this eventually, but I'm not sure how long
>     that will be (several weeks away, at least).
>
>     If you figure it out, please let me know.
>
>
> Thanks Alistair. Can you tell me which library versions you're linking against
> at build time?

I'm not sure exactly what info you're after, let me know if it isn't
included below...

OS: Ubuntu 16.04.2

$ uname -a
Linux alistair-xps13 4.8.0-51-generic #54~16.04.1-Ubuntu SMP Wed Apr 26
16:00:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ ldd pharo
        linux-gate.so.1 =>  (0xf7707000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76f0000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76d3000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf767d000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74c7000)
        /snap/pharo/current/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x56572000)


OSProcessAccessor forThisOSProcess primOSProcessPluginModuleVersionString
"'4.3.3 Cog'"

OSProcessAccessor forThisOSProcess primOSProcessPluginModuleName
"'UnixOSProcessPlugin VMConstruction-Plugins-OSProcessPlugin.oscog-eem.54 (i)'"

Cheers,
Alistair

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 
Hi Alistair,

On 17 May 2017, at 17:06, [hidden email] wrote:

Hi Max,

On Wed, May 17, 2017 at 02:36:27PM +0200, Max Leske wrote:
   On 17 May 2017, at 14:00, [hidden email] wrote:

   I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
   downloaded from get.pharo.org, but locks up when using the VM I
   compiled.

   Both VMs (threaded heartbeat) are based on the same source code, i.e.:

   VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
   Date: Tue May 2 16:26:41 2017 -0700 $

   I'll try and take a look at this eventually, but I'm not sure how long
   that will be (several weeks away, at least).

   If you figure it out, please let me know.


Thanks Alistair. Can you tell me which library versions you're linking against
at build time?

I'm not sure exactly what info you're after, let me know if it isn't
included below...

OS: Ubuntu 16.04.2

$ uname -a
Linux alistair-xps13 4.8.0-51-generic #54~16.04.1-Ubuntu SMP Wed Apr 26
16:00:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ ldd pharo
linux-gate.so.1 =>  (0xf7707000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76f0000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76d3000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf767d000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74c7000)
/snap/pharo/current/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x56572000)


OSProcessAccessor forThisOSProcess primOSProcessPluginModuleVersionString
"'4.3.3 Cog'"

OSProcessAccessor forThisOSProcess primOSProcessPluginModuleName
"'UnixOSProcessPlugin VMConstruction-Plugins-OSProcessPlugin.oscog-eem.54 (i)'"

Thanks. Could you also perform the equivalent of "sudo apt-cache policy libc6" for those libraries? That should give you something like

libc6:
  Installed: 2.19-18+deb8u7
  Candidate: 2.19-18+deb8u9
  Version table:
     2.19-18+deb8u9 0
        500 http://ftp.debian.org/debian/ jessie/main amd64 Packages
 *** 2.19-18+deb8u7 0
        100 /var/lib/dpkg/status
     2.19-18+deb8u3 0
        500 http://security.debian.org/ jessie/updates/main amd64 Packages

That way I can see which exact versions of the libraries you are using (as you can see I have 2.19 while the travis job links agains 2.15).

Cheers,
Max


Cheers,
Alistair

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Alistair Grant
 
Hi Max,

On Wed, May 17, 2017 at 05:13:27PM +0200, Max Leske wrote:
>  

> Hi Alistair,
>
> ...
>
> Thanks. Could you also perform the equivalent of "sudo apt-cache policy libc6"
> for those libraries? That should give you something like
>
> libc6:
>   Installed: 2.19-18+deb8u7
>   Candidate: 2.19-18+deb8u9
>   Version table:
>      2.19-18+deb8u9 0
>         500 http://ftp.debian.org/debian/ jessie/main amd64 Packages
>  *** 2.19-18+deb8u7 0
>         100 /var/lib/dpkg/status
>      2.19-18+deb8u3 0
>         500 http://security.debian.org/ jessie/updates/main amd64 Packages
>
> That way I can see which exact versions of the libraries you are using (as you
> can see I have 2.19 while the travis job links agains 2.15).

$ sudo apt-cache policy libc6
libc6:
  Installed: 2.23-0ubuntu7
  Candidate: 2.23-0ubuntu7
  Version table:
 *** 2.23-0ubuntu7 500
        500 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu xenial-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.23-0ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages


They all seem to be part of the libc6 package, however, just in case...
:-)


$ dpkg -l | grep i386
ii  gcc-5-base:i386                    5.4.0-6ubuntu1~16.04.4                   i386         GCC, the GNU Compiler Collection (base package)
ii  gcc-6-base:i386                    6.0.1-0ubuntu1                           i386         GCC, the GNU Compiler Collection (base package)
ii  libasound2:i386                    1.1.0-0ubuntu1                           i386         shared library for ALSA applications
ii  libasound2-dev:i386                1.1.0-0ubuntu1                           i386         shared library for ALSA applications -- development files
ii  libasound2-plugins:i386            1.1.0-0ubuntu1                           i386         ALSA library additional plugins
ii  libasyncns0:i386                   0.8-5build1                              i386         Asynchronous name service query library
ii  libbsd0:i386                       0.8.2-1                                  i386         utility functions from BSD systems - shared library
ii  libc6:i386                         2.23-0ubuntu7                            i386         GNU C Library: Shared libraries
ii  libc6-dev:i386                     2.23-0ubuntu7                            i386         GNU C Library: Development Libraries and Header Files
ii  libc6-dev-i386                     2.23-0ubuntu7                            amd64        GNU C Library: 32-bit development libraries for AMD64
ii  libc6-i386                         2.23-0ubuntu7                            amd64        GNU C Library: 32-bit shared libraries for AMD64
ii  libdbus-1-3:i386                   1.10.6-1ubuntu3.3                        i386         simple interprocess messaging system (library)
ii  libdrm-amdgpu1:i386                2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii  libdrm-dev:i386                    2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to kernel DRM services -- development files
ii  libdrm-intel1:i386                 2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to intel-specific kernel DRM services -- runtime
ii  libdrm-nouveau2:i386               2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to nouveau-specific kernel DRM services -- runtime
ii  libdrm-radeon1:i386                2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to radeon-specific kernel DRM services -- runtime
ii  libdrm2:i386                       2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to kernel DRM services -- runtime
ii  libedit2:i386                      3.1-20150325-1ubuntu2                    i386         BSD editline and history libraries
ii  libelf1:i386                       0.165-3ubuntu1                           i386         library to read and write ELF files
ii  libexpat1:i386                     2.1.0-7ubuntu0.16.04.2                   i386         XML parsing C library - runtime library
ii  libffi6:i386                       3.2.1-4                                  i386         Foreign Function Interface library runtime
ii  libflac8:i386                      1.3.1-4                                  i386         Free Lossless Audio Codec - runtime C library
ii  libfreetype6:i386                  2.6.1-0.1ubuntu2.2                       i386         FreeType 2 font engine, shared library files
ii  libfreetype6-dev:i386              2.6.1-0.1ubuntu2.2                       i386         FreeType 2 font engine, development files
ii  libgcc1:i386                       1:6.0.1-0ubuntu1                         i386         GCC support library
ii  libgcrypt20:i386                   1.6.5-2ubuntu0.2                         i386         LGPL Crypto library - runtime library
ii  libgl1-mesa-dev:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- GLX development files
ii  libgl1-mesa-dri:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-glx:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- GLX runtime
ii  libglapi-mesa:i386                 12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the GL API -- shared library
ii  libgpg-error0:i386                 1.21-2ubuntu1                            i386         library for common error values and messages in GnuPG components
ii  libice-dev:i386                    2:1.0.9-1                                i386         X11 Inter-Client Exchange library (development headers)
ii  libice6:i386                       2:1.0.9-1                                i386         X11 Inter-Client Exchange library
ii  libjack-jackd2-0:i386              1.9.10+20150825git1ed50c92~dfsg-1ubuntu1 i386         JACK Audio Connection Kit (libraries)
ii  libjson-c2:i386                    0.11-4ubuntu2                            i386         JSON manipulation library - shared library
ii  libllvm3.8:i386                    1:3.8-2ubuntu4                           i386         Modular compiler and toolchain technologies, runtime library
ii  liblzma5:i386                      5.1.1alpha+20120614-2ubuntu2             i386         XZ-format compression library
ii  libogg0:i386                       1.3.2-1                                  i386         Ogg bitstream library
ii  libpciaccess0:i386                 0.13.4-1                                 i386         Generic PCI access library for X
ii  libpcre3:i386                      2:8.38-3.1                               i386         Perl 5 Compatible Regular Expression Library - runtime files
ii  libpng12-0:i386                    1.2.54-1ubuntu1                          i386         PNG library - runtime
ii  libpng12-dev:i386                  1.2.54-1ubuntu1                          i386         PNG library - development
ii  libpthread-stubs0-dev:i386         0.3-4                                    i386         pthread stubs not provided by native libc, development files
ii  libpulse0:i386                     1:8.0-0ubuntu3.2                         i386         PulseAudio client libraries
ii  libsamplerate0:i386                0.1.8-8                                  i386         Audio sample rate conversion library
ii  libselinux1:i386                   2.4-3build2                              i386         SELinux runtime shared libraries
ii  libsm-dev:i386                     2:1.2.2-1                                i386         X11 Session Management library (development headers)
ii  libsm6:i386                        2:1.2.2-1                                i386         X11 Session Management library
ii  libsndfile1:i386                   1.0.25-10                                i386         Library for reading/writing audio files
ii  libspeexdsp1:i386                  1.2~rc1.2-1ubuntu1                       i386         The Speex extended runtime library
ii  libssl-dev:i386                    1.0.2g-1ubuntu4.6                        i386         Secure Sockets Layer toolkit - development files
ii  libssl1.0.0:i386                   1.0.2g-1ubuntu4.6                        i386         Secure Sockets Layer toolkit - shared libraries
ii  libstdc++6:i386                    5.4.0-6ubuntu1~16.04.4                   i386         GNU Standard C++ Library v3
ii  libsystemd0:i386                   229-4ubuntu16                            i386         systemd utility library
ii  libtinfo5:i386                     6.0+20160213-1ubuntu1                    i386         shared low-level terminfo library for terminal handling
ii  libtxc-dxtn-s2tc0:i386             0~git20131104-1.1                        i386         Texture compression library for Mesa
ii  libudev1:i386                      229-4ubuntu16                            i386         libudev shared library
ii  libuuid1:i386                      2.27.1-6ubuntu3.2                        i386         Universally Unique ID library
ii  libvorbis0a:i386                   1.3.5-3                                  i386         decoder library for Vorbis General Audio Compression Codec
ii  libvorbisenc2:i386                 1.3.5-3                                  i386         encoder library for Vorbis General Audio Compression Codec
ii  libwrap0:i386                      7.6.q-25                                 i386         Wietse Venema's TCP wrappers library
ii  libx11-6:i386                      2:1.6.3-1ubuntu2                         i386         X11 client-side library
ii  libx11-dev:i386                    2:1.6.3-1ubuntu2                         i386         X11 client-side library (development headers)
ii  libx11-xcb-dev:i386                2:1.6.3-1ubuntu2                         i386         Xlib/XCB interface library (development headers)
ii  libx11-xcb1:i386                   2:1.6.3-1ubuntu2                         i386         Xlib/XCB interface library
ii  libxau-dev:i386                    1:1.0.8-1                                i386         X11 authorisation library (development headers)
ii  libxau6:i386                       1:1.0.8-1                                i386         X11 authorisation library
ii  libxcb-dri2-0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, dri2 extension
ii  libxcb-dri2-0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, dri2 extension, development files
ii  libxcb-dri3-0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, dri3 extension
ii  libxcb-dri3-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, dri3 extension, development files
ii  libxcb-glx0:i386                   1.11.1-1ubuntu1                          i386         X C Binding, glx extension
ii  libxcb-glx0-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, glx extension, development files
ii  libxcb-present-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, present extension, development files
ii  libxcb-present0:i386               1.11.1-1ubuntu1                          i386         X C Binding, present extension
ii  libxcb-randr0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, randr extension
ii  libxcb-randr0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, randr extension, development files
ii  libxcb-render0:i386                1.11.1-1ubuntu1                          i386         X C Binding, render extension
ii  libxcb-render0-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, render extension, development files
ii  libxcb-shape0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, shape extension
ii  libxcb-shape0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, shape extension, development files
ii  libxcb-sync-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, sync extension, development files
ii  libxcb-sync1:i386                  1.11.1-1ubuntu1                          i386         X C Binding, sync extension
ii  libxcb-xfixes0:i386                1.11.1-1ubuntu1                          i386         X C Binding, xfixes extension
ii  libxcb-xfixes0-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, xfixes extension, development files
ii  libxcb1:i386                       1.11.1-1ubuntu1                          i386         X C Binding
ii  libxcb1-dev:i386                   1.11.1-1ubuntu1                          i386         X C Binding, development files
ii  libxdamage-dev:i386                1:1.1.4-2                                i386         X11 damaged region extension library (development headers)
ii  libxdamage1:i386                   1:1.1.4-2                                i386         X11 damaged region extension library
ii  libxdmcp-dev:i386                  1:1.1.2-1.1                              i386         X11 authorisation library (development headers)
ii  libxdmcp6:i386                     1:1.1.2-1.1                              i386         X11 Display Manager Control Protocol library
ii  libxext-dev:i386                   2:1.3.3-1                                i386         X11 miscellaneous extensions library (development headers)
ii  libxext6:i386                      2:1.3.3-1                                i386         X11 miscellaneous extension library
ii  libxfixes-dev:i386                 1:5.0.1-2                                i386         X11 miscellaneous 'fixes' extension library (development headers)
ii  libxfixes3:i386                    1:5.0.1-2                                i386         X11 miscellaneous 'fixes' extension library
ii  libxshmfence-dev:i386              1.2-1                                    i386         X shared memory fences - development files
ii  libxshmfence1:i386                 1.2-1                                    i386         X shared memory fences - shared library
ii  libxxf86vm-dev:i386                1:1.1.4-1                                i386         X11 XFree86 video mode extension library (development headers)
ii  libxxf86vm1:i386                   1:1.1.4-1                                i386         X11 XFree86 video mode extension library
ii  linux-libc-dev:i386                4.4.0-72.93                              i386         Linux Kernel Headers for development
ii  mesa-common-dev:i386               12.0.6-0ubuntu0.16.04.1                  i386         Developer documentation for Mesa
ii  uuid-dev:i386                      2.27.1-6ubuntu3.2                        i386         Universally Unique ID library - headers and static libraries
ii  zlib1g:i386                        1:1.2.8.dfsg-2ubuntu4                    i386         compression library - runtime
ii  zlib1g-dev:i386                    1:1.2.8.dfsg-2ubuntu4                    i386         compression library - development

Cheers,
Alistair
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 
Perfect, thanks!

On 17 May 2017, at 17:54, [hidden email] wrote:

Hi Max,

On Wed, May 17, 2017 at 05:13:27PM +0200, Max Leske wrote:


Hi Alistair,

...

Thanks. Could you also perform the equivalent of "sudo apt-cache policy libc6"
for those libraries? That should give you something like

libc6:
 Installed: 2.19-18+deb8u7
 Candidate: 2.19-18+deb8u9
 Version table:
    2.19-18+deb8u9 0
       500 http://ftp.debian.org/debian/ jessie/main amd64 Packages
*** 2.19-18+deb8u7 0
       100 /var/lib/dpkg/status
    2.19-18+deb8u3 0
       500 http://security.debian.org/ jessie/updates/main amd64 Packages

That way I can see which exact versions of the libraries you are using (as you
can see I have 2.19 while the travis job links agains 2.15).

$ sudo apt-cache policy libc6
libc6:
 Installed: 2.23-0ubuntu7
 Candidate: 2.23-0ubuntu7
 Version table:
*** 2.23-0ubuntu7 500
       500 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
       500 http://archive.ubuntu.com/ubuntu xenial-security/main amd64 Packages
       100 /var/lib/dpkg/status
    2.23-0ubuntu3 500
       500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages


They all seem to be part of the libc6 package, however, just in case...
:-)


$ dpkg -l | grep i386
ii  gcc-5-base:i386                    5.4.0-6ubuntu1~16.04.4                   i386         GCC, the GNU Compiler Collection (base package)
ii  gcc-6-base:i386                    6.0.1-0ubuntu1                           i386         GCC, the GNU Compiler Collection (base package)
ii  libasound2:i386                    1.1.0-0ubuntu1                           i386         shared library for ALSA applications
ii  libasound2-dev:i386                1.1.0-0ubuntu1                           i386         shared library for ALSA applications -- development files
ii  libasound2-plugins:i386            1.1.0-0ubuntu1                           i386         ALSA library additional plugins
ii  libasyncns0:i386                   0.8-5build1                              i386         Asynchronous name service query library
ii  libbsd0:i386                       0.8.2-1                                  i386         utility functions from BSD systems - shared library
ii  libc6:i386                         2.23-0ubuntu7                            i386         GNU C Library: Shared libraries
ii  libc6-dev:i386                     2.23-0ubuntu7                            i386         GNU C Library: Development Libraries and Header Files
ii  libc6-dev-i386                     2.23-0ubuntu7                            amd64        GNU C Library: 32-bit development libraries for AMD64
ii  libc6-i386                         2.23-0ubuntu7                            amd64        GNU C Library: 32-bit shared libraries for AMD64
ii  libdbus-1-3:i386                   1.10.6-1ubuntu3.3                        i386         simple interprocess messaging system (library)
ii  libdrm-amdgpu1:i386                2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii  libdrm-dev:i386                    2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to kernel DRM services -- development files
ii  libdrm-intel1:i386                 2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to intel-specific kernel DRM services -- runtime
ii  libdrm-nouveau2:i386               2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to nouveau-specific kernel DRM services -- runtime
ii  libdrm-radeon1:i386                2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to radeon-specific kernel DRM services -- runtime
ii  libdrm2:i386                       2.4.70-1~ubuntu16.04.1                   i386         Userspace interface to kernel DRM services -- runtime
ii  libedit2:i386                      3.1-20150325-1ubuntu2                    i386         BSD editline and history libraries
ii  libelf1:i386                       0.165-3ubuntu1                           i386         library to read and write ELF files
ii  libexpat1:i386                     2.1.0-7ubuntu0.16.04.2                   i386         XML parsing C library - runtime library
ii  libffi6:i386                       3.2.1-4                                  i386         Foreign Function Interface library runtime
ii  libflac8:i386                      1.3.1-4                                  i386         Free Lossless Audio Codec - runtime C library
ii  libfreetype6:i386                  2.6.1-0.1ubuntu2.2                       i386         FreeType 2 font engine, shared library files
ii  libfreetype6-dev:i386              2.6.1-0.1ubuntu2.2                       i386         FreeType 2 font engine, development files
ii  libgcc1:i386                       1:6.0.1-0ubuntu1                         i386         GCC support library
ii  libgcrypt20:i386                   1.6.5-2ubuntu0.2                         i386         LGPL Crypto library - runtime library
ii  libgl1-mesa-dev:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- GLX development files
ii  libgl1-mesa-dri:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-glx:i386               12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the OpenGL API -- GLX runtime
ii  libglapi-mesa:i386                 12.0.6-0ubuntu0.16.04.1                  i386         free implementation of the GL API -- shared library
ii  libgpg-error0:i386                 1.21-2ubuntu1                            i386         library for common error values and messages in GnuPG components
ii  libice-dev:i386                    2:1.0.9-1                                i386         X11 Inter-Client Exchange library (development headers)
ii  libice6:i386                       2:1.0.9-1                                i386         X11 Inter-Client Exchange library
ii  libjack-jackd2-0:i386              1.9.10+20150825git1ed50c92~dfsg-1ubuntu1 i386         JACK Audio Connection Kit (libraries)
ii  libjson-c2:i386                    0.11-4ubuntu2                            i386         JSON manipulation library - shared library
ii  libllvm3.8:i386                    1:3.8-2ubuntu4                           i386         Modular compiler and toolchain technologies, runtime library
ii  liblzma5:i386                      5.1.1alpha+20120614-2ubuntu2             i386         XZ-format compression library
ii  libogg0:i386                       1.3.2-1                                  i386         Ogg bitstream library
ii  libpciaccess0:i386                 0.13.4-1                                 i386         Generic PCI access library for X
ii  libpcre3:i386                      2:8.38-3.1                               i386         Perl 5 Compatible Regular Expression Library - runtime files
ii  libpng12-0:i386                    1.2.54-1ubuntu1                          i386         PNG library - runtime
ii  libpng12-dev:i386                  1.2.54-1ubuntu1                          i386         PNG library - development
ii  libpthread-stubs0-dev:i386         0.3-4                                    i386         pthread stubs not provided by native libc, development files
ii  libpulse0:i386                     1:8.0-0ubuntu3.2                         i386         PulseAudio client libraries
ii  libsamplerate0:i386                0.1.8-8                                  i386         Audio sample rate conversion library
ii  libselinux1:i386                   2.4-3build2                              i386         SELinux runtime shared libraries
ii  libsm-dev:i386                     2:1.2.2-1                                i386         X11 Session Management library (development headers)
ii  libsm6:i386                        2:1.2.2-1                                i386         X11 Session Management library
ii  libsndfile1:i386                   1.0.25-10                                i386         Library for reading/writing audio files
ii  libspeexdsp1:i386                  1.2~rc1.2-1ubuntu1                       i386         The Speex extended runtime library
ii  libssl-dev:i386                    1.0.2g-1ubuntu4.6                        i386         Secure Sockets Layer toolkit - development files
ii  libssl1.0.0:i386                   1.0.2g-1ubuntu4.6                        i386         Secure Sockets Layer toolkit - shared libraries
ii  libstdc++6:i386                    5.4.0-6ubuntu1~16.04.4                   i386         GNU Standard C++ Library v3
ii  libsystemd0:i386                   229-4ubuntu16                            i386         systemd utility library
ii  libtinfo5:i386                     6.0+20160213-1ubuntu1                    i386         shared low-level terminfo library for terminal handling
ii  libtxc-dxtn-s2tc0:i386             0~git20131104-1.1                        i386         Texture compression library for Mesa
ii  libudev1:i386                      229-4ubuntu16                            i386         libudev shared library
ii  libuuid1:i386                      2.27.1-6ubuntu3.2                        i386         Universally Unique ID library
ii  libvorbis0a:i386                   1.3.5-3                                  i386         decoder library for Vorbis General Audio Compression Codec
ii  libvorbisenc2:i386                 1.3.5-3                                  i386         encoder library for Vorbis General Audio Compression Codec
ii  libwrap0:i386                      7.6.q-25                                 i386         Wietse Venema's TCP wrappers library
ii  libx11-6:i386                      2:1.6.3-1ubuntu2                         i386         X11 client-side library
ii  libx11-dev:i386                    2:1.6.3-1ubuntu2                         i386         X11 client-side library (development headers)
ii  libx11-xcb-dev:i386                2:1.6.3-1ubuntu2                         i386         Xlib/XCB interface library (development headers)
ii  libx11-xcb1:i386                   2:1.6.3-1ubuntu2                         i386         Xlib/XCB interface library
ii  libxau-dev:i386                    1:1.0.8-1                                i386         X11 authorisation library (development headers)
ii  libxau6:i386                       1:1.0.8-1                                i386         X11 authorisation library
ii  libxcb-dri2-0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, dri2 extension
ii  libxcb-dri2-0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, dri2 extension, development files
ii  libxcb-dri3-0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, dri3 extension
ii  libxcb-dri3-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, dri3 extension, development files
ii  libxcb-glx0:i386                   1.11.1-1ubuntu1                          i386         X C Binding, glx extension
ii  libxcb-glx0-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, glx extension, development files
ii  libxcb-present-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, present extension, development files
ii  libxcb-present0:i386               1.11.1-1ubuntu1                          i386         X C Binding, present extension
ii  libxcb-randr0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, randr extension
ii  libxcb-randr0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, randr extension, development files
ii  libxcb-render0:i386                1.11.1-1ubuntu1                          i386         X C Binding, render extension
ii  libxcb-render0-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, render extension, development files
ii  libxcb-shape0:i386                 1.11.1-1ubuntu1                          i386         X C Binding, shape extension
ii  libxcb-shape0-dev:i386             1.11.1-1ubuntu1                          i386         X C Binding, shape extension, development files
ii  libxcb-sync-dev:i386               1.11.1-1ubuntu1                          i386         X C Binding, sync extension, development files
ii  libxcb-sync1:i386                  1.11.1-1ubuntu1                          i386         X C Binding, sync extension
ii  libxcb-xfixes0:i386                1.11.1-1ubuntu1                          i386         X C Binding, xfixes extension
ii  libxcb-xfixes0-dev:i386            1.11.1-1ubuntu1                          i386         X C Binding, xfixes extension, development files
ii  libxcb1:i386                       1.11.1-1ubuntu1                          i386         X C Binding
ii  libxcb1-dev:i386                   1.11.1-1ubuntu1                          i386         X C Binding, development files
ii  libxdamage-dev:i386                1:1.1.4-2                                i386         X11 damaged region extension library (development headers)
ii  libxdamage1:i386                   1:1.1.4-2                                i386         X11 damaged region extension library
ii  libxdmcp-dev:i386                  1:1.1.2-1.1                              i386         X11 authorisation library (development headers)
ii  libxdmcp6:i386                     1:1.1.2-1.1                              i386         X11 Display Manager Control Protocol library
ii  libxext-dev:i386                   2:1.3.3-1                                i386         X11 miscellaneous extensions library (development headers)
ii  libxext6:i386                      2:1.3.3-1                                i386         X11 miscellaneous extension library
ii  libxfixes-dev:i386                 1:5.0.1-2                                i386         X11 miscellaneous 'fixes' extension library (development headers)
ii  libxfixes3:i386                    1:5.0.1-2                                i386         X11 miscellaneous 'fixes' extension library
ii  libxshmfence-dev:i386              1.2-1                                    i386         X shared memory fences - development files
ii  libxshmfence1:i386                 1.2-1                                    i386         X shared memory fences - shared library
ii  libxxf86vm-dev:i386                1:1.1.4-1                                i386         X11 XFree86 video mode extension library (development headers)
ii  libxxf86vm1:i386                   1:1.1.4-1                                i386         X11 XFree86 video mode extension library
ii  linux-libc-dev:i386                4.4.0-72.93                              i386         Linux Kernel Headers for development
ii  mesa-common-dev:i386               12.0.6-0ubuntu0.16.04.1                  i386         Developer documentation for Mesa
ii  uuid-dev:i386                      2.27.1-6ubuntu3.2                        i386         Universally Unique ID library - headers and static libraries
ii  zlib1g:i386                        1:1.2.8.dfsg-2ubuntu4                    i386         compression library - runtime
ii  zlib1g-dev:i386                    1:1.2.8.dfsg-2ubuntu4                    i386         compression library - development

Cheers,
Alistair

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Eliot Miranda-2
In reply to this post by Alistair Grant
 
Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email]> wrote:

On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:
> Hi Max,
>
> On 16 May 2017 15:40, "Max Leske" <[hidden email]> wrote:
>
>     Hi Alistair,
>
>         On 16 May 2017, at 15:32, [hidden email]
>         wrote:
>
>         Hi Max,
>
>         I can't answer your question directly, but just wondering why you are
>         using
>         the itimer VM when the are known issues with external calls, and not
>         the
>         heartbeat VM?
>
>     Because of the root user issue, and also because I don't care about that
>     much at the moment. I'm still experimenting and for those experiments it
>     doesn't matter which VM I use. Thirdly, the itimer VM is the one I get when
>     I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient to get
>     the latest VM, and to minimise differences between the VM's we built the
>     same one. I will definitely consider using the threaded VM for production.
>
>         P.S. I would love to see OSProcess working in 32 bit mode.
>
>     Well, it does work already, just not when we build the VM ourselves :/
>
> Interesting, I had the impression that for Pharo 6 OSProcess didn't work in
> 32bits, only 64, but I'm also building my own VM.  I'm away from my PC, but
> I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org, but locks up when using the VM I
compiled.

Have you looked at the build logs and eliminated compiler version, command line flags, etc?  One important file is the config.h that is produced in the build directory.  It might be informative to compare the one configure is producing on your systems and the one that the binary builds creates.
 

Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair



--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email]>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:
Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email]> wrote:

   Hi Alistair,

       On 16 May 2017, at 15:32, vm-dev-request@lists.
squeakfoundation.org
       wrote:

       Hi Max,

       I can't answer your question directly, but just wondering why
you are
       using
       the itimer VM when the are known issues with external calls, and
not
       the
       heartbeat VM?

   Because of the root user issue, and also because I don't care about
that
   much at the moment. I'm still experimenting and for those
experiments it
   doesn't matter which VM I use. Thirdly, the itimer VM is the one I
get when
   I use 'curl get.pharo.org/60+vmLatest | bash', which is convenient
to get
   the latest VM, and to minimise differences between the VM's we built
the
   same one. I will definitely consider using the threaded VM for
production.

       P.S. I would love to see OSProcess working in 32 bit mode.

   Well, it does work already, just not when we build the VM ourselves
:/

Interesting, I had the impression that for Pharo 6 OSProcess didn't work
in
32bits, only 64, but I'm also building my own VM.  I'm away from my PC,
but
I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org, but locks up when using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.

Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




-- 
_,,,^..^,,,_
best, Eliot

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 
We managed to figure out that OSProcess works when we use gcc <= 4.8 on Debian. We are happy to use 4.8 for now, so we're good. It would of course be super cool if we could use the series 6 gcc as that will soon ship with Debian 9 (stretch) but it's probably not trivial to just move to a new compiler version (as seems evident from the fact that a minor version change can mess up compilation).

Thanks for your help Alistair and Eliot.

Cheers,
Max


On 18 May 2017, at 11:00, [hidden email] wrote:

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email] <[hidden email]>>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:
Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email] <[hidden email]>> wrote:

  Hi Alistair,

      On 16 May 2017, at 15:32, vm-dev-request@lists.
squeakfoundation.org <http://squeakfoundation.org/>
      wrote:

      Hi Max,

      I can't answer your question directly, but just wondering why
you are
      using
      the itimer VM when the are known issues with external calls, and
not
      the
      heartbeat VM?

  Because of the root user issue, and also because I don't care about
that
  much at the moment. I'm still experimenting and for those
experiments it
  doesn't matter which VM I use. Thirdly, the itimer VM is the one I
get when
  I use 'curl get.pharo.org/60+vmLatest <http://get.pharo.org/60+vmLatest> | bash', which is convenient
to get
  the latest VM, and to minimise differences between the VM's we built
the
  same one. I will definitely consider using the threaded VM for
production.

      P.S. I would love to see OSProcess working in 32 bit mode.

  Well, it does work already, just not when we build the VM ourselves
:/

Interesting, I had the impression that for Pharo 6 OSProcess didn't work
in
32bits, only 64, but I'm also building my own VM.  I'm away from my PC,
but
I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org <http://get.pharo.org/>, but locks up when using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.

Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




-- 
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Eliot Miranda-2
 
Hi Max,

On Thu, May 18, 2017 at 4:32 AM, Max Leske <[hidden email]> wrote:
 
We managed to figure out that OSProcess works when we use gcc <= 4.8 on Debian. We are happy to use 4.8 for now, so we're good. It would of course be super cool if we could use the series 6 gcc as that will soon ship with Debian 9 (stretch) but it's probably not trivial to just move to a new compiler version (as seems evident from the fact that a minor version change can mess up compilation).

For the sake of revisiting this when we have time and can debug it can you state which version(s) you tried to use which didn't work? Also, what are the compilation flags (full gcc invocation example) for the case(s) that work and the case(s) that don't?

Debugging this can be straight-forward if one can build the two versions and execute them side-by-side to pin-point the failure.  Coming with a fix may be more challenging ;-)


Thanks for your help Alistair and Eliot.

Cheers,
Max


On 18 May 2017, at 11:00, [hidden email] wrote:

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email] <[hidden email]>>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:
Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email] <[hidden email]>> wrote:

  Hi Alistair,

      On 16 May 2017, at 15:32, vm-dev-request@lists.
squeakfoundation.org <http://squeakfoundation.org/>
      wrote:

      Hi Max,

      I can't answer your question directly, but just wondering why
you are
      using
      the itimer VM when the are known issues with external calls, and
not
      the
      heartbeat VM?

  Because of the root user issue, and also because I don't care about
that
  much at the moment. I'm still experimenting and for those
experiments it
  doesn't matter which VM I use. Thirdly, the itimer VM is the one I
get when
  I use 'curl get.pharo.org/60+vmLatest <http://get.pharo.org/60+vmLatest> | bash', which is convenient
to get
  the latest VM, and to minimise differences between the VM's we built
the
  same one. I will definitely consider using the threaded VM for
production.

      P.S. I would love to see OSProcess working in 32 bit mode.

  Well, it does work already, just not when we build the VM ourselves
:/

Interesting, I had the impression that for Pharo 6 OSProcess didn't work
in
32bits, only 64, but I'm also building my own VM.  I'm away from my PC,
but
I'll try and take a look.

I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org <http://get.pharo.org/>, but locks up when using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.

Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git <https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




-- 
_,,,^..^,,,_
best, Eliot






--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Eliot Miranda-2
In reply to this post by Max Leske
 
BTW, for all people installing and building their own please note this:

On Tue, May 16, 2017 at 5:57 AM, Max Leske <[hidden email]> wrote:
[snip]
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo
Pharo VM version: 5.0-$URL$  Tue May 16 12:22:16 UTC 2017 gcc 4.9.2 [Production Spur ITHB VM]
Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid: 8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid: 4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017
Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$
Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20 09:22:42 UTC 2017 i686 GNU/Linux
plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/]

The way to get rid of the " Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$" nonsense in the version report is to make sure to run
scripts/updateSCCSVersions
exactly once before you build.  From then on the checkin script
scrips/gitci
makes sure that this is up-to-date.  You'll get something more useful such as

VM: 201705161708 eliot@Sisyphus:oscogvm $ Date: Tue May 16 10:08:12 2017 -0700 $

which allows me to identify this VM as one I build myself on my Mac Mini Sisyphus in directory oscogvm, which contrasts with the official binary VMs.

Ideally the script would be run automatically after the repository was cloned.  Do git mavens know if a post-clone hook is available to make this happen?  If so, can someone make it so?


_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 

On 19 May 2017, at 03:36, [hidden email] wrote:

On Fri, May 19, 2017 at 2:58 AM, Eliot Miranda <[hidden email]>
wrote:

BTW, for all people installing and building their own please note this:

On Tue, May 16, 2017 at 5:57 AM, Max Leske <[hidden email]> wrote:
[snip]

/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo
Pharo VM version: 5.0-$URL$  Tue May 16 12:22:16 UTC 2017 gcc 4.9.2
[Production Spur ITHB VM]
Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid:
8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017
With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid:
4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017
Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins:  $Rev$
Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20
09:22:42 UTC 2017 i686 GNU/Linux
plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default:
/usr/local/lib/phcogspurlinux/lib/pharo/5.0-/]


The way to get rid of the " Revision: VM: $URL$ $Date$ Date: $Rev$
Plugins:  $Rev$" nonsense in the version report is to make sure to run
scripts/updateSCCSVersions

Even though I know this, I usually forget for the first run on a new
machine.
Is there some reason this can't be run as part of make?


exactly once before you build.  From then on the checkin script
scrips/gitci
makes sure that this is up-to-date.  You'll get something more useful
such as

VM: 201705161708 eliot@Sisyphus:oscogvm $ Date: Tue May 16 10:08:12 2017
-0700 $

which allows me to identify this VM as one I build myself on my Mac Mini
Sisyphus in directory oscogvm, which contrasts with the official binary VMs.

Ideally the script would be run automatically after the repository was
cloned.  Do git mavens know if a post-clone hook is available to make this
happen?  If so, can someone make it so?

The blocker to this is that clone does not install the hooks.
Maybe the hooks be installed by make?
Of course, everyone should look at the README, but unfortunate human nature
its a bit TL;DR.
The alternative could be a SETUP or QUICKSTART file in the root directory,
to make it more obvious it should be run.


btw, could someone actually explain how this works...
 git config --local include.path ../.gitconfig

tell git to respect a specific .gitconfig file

 git stash -q || true

stash all changes, i.e. don't throw them away but make the repository clean

 echo "//" >> platforms/Cross/vm/sqSCCSVersion.h
 echo "//" >> platforms/Cross/plugins/sqPluginsSCCSVersion.h

this appends a comment to both files, don't know why though, it doesn't seem to have any effect other than making those versions dirty

 git checkout HEAD -- platforms/Cross/vm/sqSCCSVersion.h
 git checkout HEAD -- platforms/Cross/plugins/sqPluginsSCCSVersion.h

replace those two files just modified with the versions from HEAD (makes sense if the repository hasn't been pulled, but I don't see why that would be the case...)

 git stash pop -q || true

again, clean the repository be without throwing away the changes (so all the modifications we made before are now gone... wtf...)

I can't grok its magic.

+1 :)

Hopefully that highlights why its the same script for each of
post-checkout, post-commit & post-merge


Also, at https://github.com/OpenSmalltalk/opensmalltalk-vm
if you click on the green <Clone or download> button and then on "Download
ZIP"
I found (from memory) that running mvm seems to successfully build a VM on
a Mac
(but I didn't validate the version info).  However on Linux the build fails
in a way that seems similar to when
updateSCCSVersions hasn't been run.  But that script depends on git,
whereas
I presume it would be good to be able to build from the ZIP download
without git - particularly
for Linux distributions that source compile their packages.
Indeed, I think Alistair bumped into this packing the VM for nixos.

So I notice that this file...
https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/platforms/Cross/vm/sqSCCSVersion.h
is dated 16 Dec 2016.  Why isn't this file kept synchronised to identify
the checked in build?
So that compiling from the ZIP download would have correct version info?

cheers -ben

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
In reply to this post by Max Leske
 

On 18 May 2017, at 20:52, [hidden email] wrote:

Hi Max,

On Thu, May 18, 2017 at 4:32 AM, Max Leske <[hidden email]> wrote:


We managed to figure out that OSProcess works when we use gcc <= 4.8 on
Debian. We are happy to use 4.8 for now, so we're good. It would of course
be super cool if we could use the series 6 gcc as that will soon ship with
Debian 9 (stretch) but it's probably not trivial to just move to a new
compiler version (as seems evident from the fact that a minor version
change can mess up compilation).


For the sake of revisiting this when we have time and can debug it can you
state which version(s) you tried to use which didn't work?

4.6: worked
4.7: worked
4.8: worked
4.9: didn't work

Also, what are
the compilation flags (full gcc invocation example) for the case(s) that
work and the case(s) that don't?

I'll send those as soon as I have them (hopefully tonight).


Debugging this can be straight-forward if one can build the two versions
and execute them side-by-side to pin-point the failure.  Coming with a fix
may be more challenging ;-)


Thanks for your help Alistair and Eliot.

Cheers,
Max


On 18 May 2017, at 11:00, [hidden email] wrote:

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email] <
[hidden email] <[hidden email]>>>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:

Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email] <mailto:
[hidden email] <[hidden email]>>> wrote:

 Hi Alistair,

     On 16 May 2017, at 15:32, vm-dev-request@lists.

squeakfoundation.org <http://squeakfoundation.org/>

     wrote:

     Hi Max,

     I can't answer your question directly, but just wondering why

you are

     using
     the itimer VM when the are known issues with external calls, and

not

     the
     heartbeat VM?

 Because of the root user issue, and also because I don't care about

that

 much at the moment. I'm still experimenting and for those

experiments it

 doesn't matter which VM I use. Thirdly, the itimer VM is the one I

get when

 I use 'curl get.pharo.org/60+vmLatest <http://get.pharo.org/60+vmLatest>
| bash', which is convenient

to get

 the latest VM, and to minimise differences between the VM's we built

the

 same one. I will definitely consider using the threaded VM for

production.


     P.S. I would love to see OSProcess working in 32 bit mode.

 Well, it does work already, just not when we build the VM ourselves

:/


Interesting, I had the impression that for Pharo 6 OSProcess didn't work

in

32bits, only 64, but I'm also building my own VM.  I'm away from my PC,

but

I'll try and take a look.


I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org <http://get.pharo.org/>, but locks up when
using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.


Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git <
https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




--
_,,,^..^,,,_
best, Eliot







-- 
_,,,^..^,,,_
best, Eliot

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Max Leske
 
Hi Eliot,

On 19 May 2017, at 16:45, Max Leske <[hidden email]> wrote:


On 18 May 2017, at 20:52, [hidden email] wrote:

Hi Max,

On Thu, May 18, 2017 at 4:32 AM, Max Leske <[hidden email]> wrote:


We managed to figure out that OSProcess works when we use gcc <= 4.8 on
Debian. We are happy to use 4.8 for now, so we're good. It would of course
be super cool if we could use the series 6 gcc as that will soon ship with
Debian 9 (stretch) but it's probably not trivial to just move to a new
compiler version (as seems evident from the fact that a minor version
change can mess up compilation).


For the sake of revisiting this when we have time and can debug it can you
state which version(s) you tried to use which didn't work?

4.6: worked
4.7: worked
4.8: worked
4.9: didn't work

Diff between config log of 4.8 and 4.9:

< Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.4-1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --with-arch-32=i586 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=i586-linux-gnu --host=i586-linux-gnu --target=i586-linux-gnu
---
> Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --with-arch-32=i586 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=i586-linux-gnu --host=i586-linux-gnu --target=i586-linux-gnu

There are only three major differences here:
--disable-libmudflap
--disable-vtable-verify
--enable-multilib

Below I've attached the log for building with 4.9 with '-fsanitize=undefined' as proposed by Holger Freyther.

The builds were performed in two separate chroot jails so they did not influence each other. The system is a Debian Jessie, 64 bits.

Let me know if you need anything else.

Cheers,
Max




Also, what are
the compilation flags (full gcc invocation example) for the case(s) that
work and the case(s) that don't?

I'll send those as soon as I have them (hopefully tonight).


Debugging this can be straight-forward if one can build the two versions
and execute them side-by-side to pin-point the failure.  Coming with a fix
may be more challenging ;-)


Thanks for your help Alistair and Eliot.

Cheers,
Max


On 18 May 2017, at 11:00, [hidden email] wrote:

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email] <
[hidden email] <[hidden email]>>>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:

Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email] <mailto:
[hidden email] <[hidden email]>>> wrote:

 Hi Alistair,

     On 16 May 2017, at 15:32, vm-dev-request@lists.

squeakfoundation.org <http://squeakfoundation.org/>

     wrote:

     Hi Max,

     I can't answer your question directly, but just wondering why

you are

     using
     the itimer VM when the are known issues with external calls, and

not

     the
     heartbeat VM?

 Because of the root user issue, and also because I don't care about

that

 much at the moment. I'm still experimenting and for those

experiments it

 doesn't matter which VM I use. Thirdly, the itimer VM is the one I

get when

 I use 'curl get.pharo.org/60+vmLatest <http://get.pharo.org/60+vmLatest>
| bash', which is convenient

to get

 the latest VM, and to minimise differences between the VM's we built

the

 same one. I will definitely consider using the threaded VM for

production.


     P.S. I would love to see OSProcess working in 32 bit mode.

 Well, it does work already, just not when we build the VM ourselves

:/


Interesting, I had the impression that for Pharo 6 OSProcess didn't work

in

32bits, only 64, but I'm also building my own VM.  I'm away from my PC,

but

I'll try and take a look.


I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org <http://get.pharo.org/>, but locks up when
using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.


Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git <
https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




--
_,,,^..^,,,_
best, Eliot







-- 
_,,,^..^,,,_
best, Eliot



config.log (145K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Ben Coman
 


On Sun, May 21, 2017 at 7:42 PM, Max Leske <[hidden email]> wrote:
 
Hi Eliot,

On 19 May 2017, at 16:45, Max Leske <[hidden email]> wrote:


On 18 May 2017, at 20:52, [hidden email] wrote:

Hi Max,

On Thu, May 18, 2017 at 4:32 AM, Max Leske <[hidden email]> wrote:


We managed to figure out that OSProcess works when we use gcc <= 4.8 on
Debian. We are happy to use 4.8 for now, so we're good. It would of course
be super cool if we could use the series 6 gcc as that will soon ship with
Debian 9 (stretch) but it's probably not trivial to just move to a new
compiler version (as seems evident from the fact that a minor version
change can mess up compilation).


For the sake of revisiting this when we have time and can debug it can you
state which version(s) you tried to use which didn't work?

4.6: worked
4.7: worked
4.8: worked
4.9: didn't work

Diff between config log of 4.8 and 4.9:

< Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.4-1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --with-arch-32=i586 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=i586-linux-gnu --host=i586-linux-gnu --target=i586-linux-gnu
---
> Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --with-arch-32=i586 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=i586-linux-gnu --host=i586-linux-gnu --target=i586-linux-gnu

There are only three major differences here:
--disable-libmudflap
--disable-vtable-verify
--enable-multilib

Just because I like pretty colours...
 

Below I've attached the log for building with 4.9 with '-fsanitize=undefined' as proposed by Holger Freyther.

The builds were performed in two separate chroot jails so they did not influence each other. The system is a Debian Jessie, 64 bits.

Side question - I'm curious how you go about doing a chroot build.  In another thread you could you post some more info on this? 

cheers -ben
 


Let me know if you need anything else.

Cheers,
Max




Also, what are
the compilation flags (full gcc invocation example) for the case(s) that
work and the case(s) that don't?

I'll send those as soon as I have them (hopefully tonight).


Debugging this can be straight-forward if one can build the two versions
and execute them side-by-side to pin-point the failure.  Coming with a fix
may be more challenging ;-)


Thanks for your help Alistair and Eliot.

Cheers,
Max


On 18 May 2017, at 11:00, [hidden email] wrote:

On 18 May 2017, at 00:50, [hidden email] wrote:

Hi Max, Hi Alistair,

On Wed, May 17, 2017 at 1:06 AM, Alistair Grant <[hidden email] <
[hidden email] <[hidden email]>>>
wrote:


On Tue, May 16, 2017 at 04:59:24PM +0200, Alistair Grant wrote:

Hi Max,

On 16 May 2017 15:40, "Max Leske" <[hidden email] <mailto:
[hidden email] <[hidden email]>>> wrote:

 Hi Alistair,

     On 16 May 2017, at 15:32, vm-dev-request@lists.

squeakfoundation.org <http://squeakfoundation.org/>

     wrote:

     Hi Max,

     I can't answer your question directly, but just wondering why

you are

     using
     the itimer VM when the are known issues with external calls, and

not

     the
     heartbeat VM?

 Because of the root user issue, and also because I don't care about

that

 much at the moment. I'm still experimenting and for those

experiments it

 doesn't matter which VM I use. Thirdly, the itimer VM is the one I

get when

 I use 'curl get.pharo.org/60+vmLatest <http://get.pharo.org/60+vmLatest>
| bash', which is convenient

to get

 the latest VM, and to minimise differences between the VM's we built

the

 same one. I will definitely consider using the threaded VM for

production.


     P.S. I would love to see OSProcess working in 32 bit mode.

 Well, it does work already, just not when we build the VM ourselves

:/


Interesting, I had the impression that for Pharo 6 OSProcess didn't work

in

32bits, only 64, but I'm also building my own VM.  I'm away from my PC,

but

I'll try and take a look.


I'm seeing the same behaviour as you, i.e. OSProcess works in a VM
downloaded from get.pharo.org <http://get.pharo.org/>, but locks up when
using the VM I
compiled.


Have you looked at the build logs and eliminated compiler version, command
line flags, etc?  One important file is the config.h that is produced in
the build directory.  It might be informative to compare the one configure
is producing on your systems and the one that the binary builds creates.


Thanks for the pointer. I'll look into it.




Both VMs (threaded heartbeat) are based on the same source code, i.e.:

VM: 201705022326 https://github.com/OpenSmalltalk/opensmalltalk-vm.git <
https://github.com/OpenSmalltalk/opensmalltalk-vm.git> $
Date: Tue May 2 16:26:41 2017 -0700 $

I'll try and take a look at this eventually, but I'm not sure how long
that will be (several weeks away, at least).

If you figure it out, please let me know.

Thanks!
Alistair




--
_,,,^..^,,,_
best, Eliot







-- 
_,,,^..^,,,_
best, Eliot




Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: OSProcess fork issue with Debian built VM

Holger Freyther
In reply to this post by Max Leske
 

> On 16. May 2017, at 20:57, Max Leske <[hidden email]> wrote:
>
>
> Hi,

Hi!


> We're building the pharo.cog.spur VM on Debian (32 bits, itimer, on 64 with compat libs). Unfortunately, we're running into one particular problem with OSProcess. Some primitives like primitiveFileStat work but forking a child process (e.g. with #waitForCommand) produces a segfault. We've tried to find a difference between our build and the VM downloaded from bintray but we weren't very successful. One difference we do see is that our libc6 version is 2.19, while the one used in the travis build is 2.15 (although both binaries use the 2.19 version at runtime).
>
> I'm aware that OSProcess hasn't been tagged as officially ready for Pharo 6 (which is where I'm using it). However, all of my tests with the prebuilt VM's have been successful.


I wanted to look at the issue and it seems that the compiler warning about out of bound array access[1] in restoreDefaultSignalHandlers remains unfixed? I reported it in February and the plugin code doesn't seem to be regenerated since then. Some of my PRs are still unreviewed so does somebody else want to try her or his luck?

I think this[2] and that[3] are candidates to be merged?


holger




[1] http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2017-February/127495.html
[2] http://www.squeaksource.com/@ZzgxlHh7fhZ1n9Zo/rdfZ1xy3
[3] http://www.squeaksource.com/@ZzgxlHh7fhZ1n9Zo/wVMJyP1K
12
Loading...