Thank you for the follow up on this. This kind of problem can be very difficult
to find and debug!

Dave


On Wed, Mar 07, 2018 at 04:30:33PM +0100, Sabine Manaa wrote:
> Now I know the reason for the crashes. I did a lot of log writing when
> creating my reports (they use OSSubprocess).
> This was only for debugging. Removing them removed the problem. OSProcess
> and OSSubprocess are not guilty :-)
> 
> I can crash the image with this (try several times)
> (in /opt/local/bin/convert there is imagemagick):
> 
> 
> 1000 timesRepeat: [
> | theFileName theStream thePath theFullPathAndFilename isFileNew |
> OSSUnixSubprocess new
> shellCommand: '/opt/local/bin/convert -background white -alpha remove
> -density 200
> /Library/WebServer/Documents/reports/201801231322-419088218-250457/20170227_19_messdefuerhunde_Fahrten.pdf
> /Library/WebServer/Documents/reports/201801231322-419088218-250457/20170227_19_messdefuerhunde_Fahrten_%02d.png';
> redirectStdout;
> run.
> thePath := '/data/db/'  asFileReference.
> thePath exists
> ifFalse: [ thePath createDirectory ].
> theFileName := 'HALLO_' , Date today yyyymmdd , '.txt'.
> theFullPathAndFilename := ('/data/db/'  , theFileName) asFileReference .
> theFullPathAndFilename asFileReference exists
> ifTrue: [ isFileNew := false.
> theStream := MultiByteFileStream oldFileNamed: theFullPathAndFilename.
> theStream position: theStream size.
> theStream crlf ]
> ifFalse: [ isFileNew := true.
> theStream := MultiByteFileStream newFileNamed: theFullPathAndFilename ].
> [ isFileNew
> ifTrue: [ theStream
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> nextPutAll: Time now printString;
> crlf ].
> theStream nextPutAll:'' ]
> ensure: [ theStream close ].
> ].
> 
> 
> 2018-03-07 2:16 GMT+01:00 David T. Lewis <le...@mail.msen.com>:
> 
> > On Tue, Mar 06, 2018 at 11:49:14AM +0100, Sabine Manaa wrote:
> > > Hi,
> > >
> > > I can report the following:
> > >
> > > The problem with the Buffer overflow remains also with OSProcess.
> > > Also with the normal vm (https://get.pharo.org ).
> > >
> > > Summary: I have buffer overflow crashes with my application on Linux.
> > > The same code runs without problems on MacOS and on Windows.
> > > I have the same test data/database and do exactly the same.
> > >
> > > The problem occurs only after calling several times
> > OSProcess/OSSubprocess.
> > > This is the reason why I first had a suspicion that OSSubprocess is
> > > responsible for the crashes.
> > >
> > > Can anyone tell me how to proceed to find the reason for the buffer
> > > overflow?
> > > There is no PharoDebug.log
> > >
> > > Help is very appreciated!
> > >
> > > This is the message when terminating:
> > >
> > > root@Pharo_ubuntu_16:/spf/build# ./pharo Pharo-Productive-SPF.image
> > > --no-quit
> > >
> > > SmalltalkImageInstanceID class>>startUp*** buffer overflow detected ***:
> > > /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
> > >
> >
> > What is class SmalltalkImageInstanceID? I have a Pharo 6.1 image, and I
> > am running on Ubuntu. I loaded OSProcess to check this out, but I am not
> > sure what that #startUp message is doing.
> >
> > Thanks,
> > Dave
> >
> >
> >

Reply via email to