Hi,
We have a problem with the Seaside tests in Squeak 5.1. The underlying issue is that source code lookup fails in headless mode on Linux (not reproducible on macOS). To reproduce evaluate in headless mode:
Object compile: 'foobar ^ [ 1+ 2] value "blah"'. (Object>>#foobar) getSourceFromFileAt: (Object>>#foobar) trailer sourcePointer.
This will signal an error (RemoteString past end of file). (Note: I checked the alternative conditions in CompiledMethod>>#getSource: the method trailer has no temp names, no #source property but has a source pointer).
I would appreciated it if someone would look into this.
Cheers, Max
Environment: Ubuntu 14.04 and 17.04 32-bit
On Sun, Oct 08, 2017 at 06:20:31PM +0200, Max Leske wrote:
Hi,
We have a problem with the Seaside tests in Squeak 5.1. The underlying issue is that source code lookup fails in headless mode on Linux (not reproducible on macOS). To reproduce evaluate in headless mode:
Object compile: 'foobar ^ [ 1+ 2] value "blah"'. (Object>>#foobar) getSourceFromFileAt: (Object>>#foobar) trailer sourcePointer.
This will signal an error (RemoteString past end of file). (Note: I checked the alternative conditions in CompiledMethod>>#getSource: the method trailer has no temp names, no #source property but has a source pointer).
I would appreciated it if someone would look into this.
Cheers, Max
Environment: Ubuntu 14.04 and 17.04 32-bit
I tried putting your example code into a start script (a file that is evaluated at image startup), and I get the same error. This is on an image with display open (not headless), so it may not be related to headlessness.
I am not sure what the issue is here, but it will probably be easier to debug with the display open :-)
Dave
Hi Max,
quick guess: "CurrentReadOnlySouceFiles" is a subclass of "Exception". There was a discussion about it last year on this list. So, if you catch too many exceptions in head-less mode (?), you cannot access the source code for a "CompiledMethod" anymore.
Best, Marcel Am 08.10.2017 20:54:24 schrieb David T. Lewis lewis@mail.msen.com: On Sun, Oct 08, 2017 at 06:20:31PM +0200, Max Leske wrote:
Hi,
We have a problem with the Seaside tests in Squeak 5.1. The underlying issue is that source code lookup fails in headless mode on Linux (not reproducible on macOS). To reproduce evaluate in headless mode:
Object compile: 'foobar ^ [ 1+ 2] value "blah"'. (Object>>#foobar) getSourceFromFileAt: (Object>>#foobar) trailer sourcePointer.
This will signal an error (RemoteString past end of file). (Note: I checked the alternative conditions in CompiledMethod>>#getSource: the method trailer has no temp names, no #source property but has a source pointer).
I would appreciated it if someone would look into this.
Cheers, Max
Environment: Ubuntu 14.04 and 17.04 32-bit
I tried putting your example code into a start script (a file that is evaluated at image startup), and I get the same error. This is on an image with display open (not headless), so it may not be related to headlessness.
I am not sure what the issue is here, but it will probably be easier to debug with the display open :-)
Dave
Hi Max,
I just pushed Files-ul.172 to the Trunk, which contains a fix for this. If it turns out to be a good fix, I'll backport it to 5.1.
Levente
On Sun, 8 Oct 2017, Max Leske wrote:
Hi, We have a problem with the Seaside tests in Squeak 5.1. The underlying issue is that source code lookup fails in headless mode on Linux (not reproducible on macOS). To reproduce evaluate in headless mode:
Object compile: 'foobar ^ [ 1+ 2] value "blah"'. (Object>>#foobar) getSourceFromFileAt: (Object>>#foobar) trailer sourcePointer.
This will signal an error (RemoteString past end of file). (Note: I checked the alternative conditions in CompiledMethod>>#getSource: the method trailer has no temp names, no #source property but has a source pointer).
I would appreciated it if someone would look into this.
Cheers, Max
Environment: Ubuntu 14.04 and 17.04 32-bit
squeak-dev@lists.squeakfoundation.org