[GemStone-Smalltalk] GsDevKit_stones - error loading gt4gemstone into a Rowan_371 extent - ERROR 2718 , a ArgumentError occurred (error 2718), attempt to create a CByteArray or CPointer that would reference VM memory

Kurt Kilpela kurt.kilpela at gemtalksystems.com
Sat Jul 13 09:15:01 PDT 2024


Reg,

It seems we have an odd bug here. We have yet to recreate the issue but
were able to work with Johan to get a stack trace and additional details.
It seems that when we open the standard library in the FFI, macOS is
assigning an address from a range previously mmap'ed. This should never
happen. We don't know why this is and are still investigating.

In the meantime, our VM engineer suggested the following may cause a
behavior change. Adjust the size of the GEM_TEMPOBJ_CACHE_SIZE. Johan was
able to confirm that the error is not produced when the solo gem's value is
100M and greater than 4G. Note, it isn't clear if this just masks the issue
or actually avoids the bug entirely.

You can adjust this value using the `-- -T 4GB` argument for a 4GB
GEM_TEMPOBJ_CACHE_SIZE.

Kurt

On Wed, Jul 10, 2024 at 2:47 PM Reg Krock <rkrock3 at yahoo.ca> wrote:

> Kurt,
>
> I do not have a 3.6 image set up at all and I am having problems with
> 3.7.1. Dale opened an internal ticket for this.
>
> Regards,
>
> Reg
>
> On Jul 8, 2024, at 7:33 PM, Reg Krock <rkrock3 at yahoo.ca> wrote:
>
> Johan,
>
> I ran your exec command and it produced the error that I am seeing.
>
> Regards,
>
> Reg
>
> On Jul 8, 2024, at 7:14 PM, Kurt Kilpela via GemStone-Smalltalk <
> gemstone-smalltalk at lists.gemtalksystems.com> wrote:
>
> I haven't yet been able to recreate this. Could either of you run the
> following expression in topaz and let me know the result?
>
> exec
> FileLocator workingDirectory asFileReference
> %
>
>
> On Mon, Jul 8, 2024 at 3:22 PM Johan Brichau via GemStone-Smalltalk <
> gemstone-smalltalk at lists.gemtalksystems.com> wrote:
>
>> fwiw:I had the exact same error pop up on a startStone.solo command
>> today.
>> I did not change anything (other than try to figure out where the issue
>> was coming from, so changing directories and looking at the registry spec)
>> … and it started to work again….
>>
>> johanbrichau at JohansMacBookAir seaside_368 % startStone.solo seaside_368
>> ERROR 2718 , a ArgumentError occurred (error 2718), attempt to create a
>> CByteArray or CPointer that would reference VM memory
>>  Near line 49 of file
>> /Users/johanbrichau/GsDevKitStones/superDoit/gemstone/superdoit.tpz
>> Stopping at line 49 of
>> /Users/johanbrichau/GsDevKitStones/superDoit/gemstone/superdoit.tpz
>> topaz 1> exit
>> Logging out session 1.
>>
>> johanbrichau at JohansMacBookAir seaside_368 % startStone.solo -h
>> ERROR 2718 , a ArgumentError occurred (error 2718), attempt to create a
>> CByteArray or CPointer that would reference VM memory
>>  Near line 49 of file
>> /Users/johanbrichau/GsDevKitStones/superDoit/gemstone/superdoit.tpz
>> Stopping at line 49 of
>> /Users/johanbrichau/GsDevKitStones/superDoit/gemstone/superdoit.tpz
>> topaz 1> exit
>> Logging out session 1.
>>
>>
>> Johan
>>
>>
>> On 8 Jul 2024, at 23:27, Dale Henrichs via GemStone-Smalltalk <
>> gemstone-smalltalk at lists.gemtalksystems.com> wrote:
>>
>> Perfect ...
>>
>> The error appeared up on github[1] ... but the error is occurring in a
>> different spot (newExtent.solo) than I had set up ... so this appears to be
>> a (possibly random) base error ... since the test was passing before I
>> changed the test case.
>>
>> I will submit an internal bug ...
>>
>> Dale
>>
>> [1]
>> https://github.com/GsDevKit/GsDevKit_stones/actions/runs/9846835856/job/27185476258#step:7:486
>>
>> On Mon, Jul 8, 2024 at 12:27 PM Reg Krock <reg.krock at gmail.com> wrote:
>>
>>> Dale,
>>>
>>> I have provided more information below.
>>>
>>> Let me know if you need additional information:
>>>
>>> Regards,
>>>
>>> Reg
>>>
>>> Chip: Apple M1 Max
>>> OS: OS/X Sonoma 14.5
>>> GsDevKit_Stones version:
>>> regkrock at rkhome1 GsDevKit_Stones % git status
>>> On branch v2.1
>>> Your branch is up to date with 'origin/v2.1'.
>>>
>>> nothing to commit, working tree clean
>>>
>>> SuperDoit Status:
>>> regkrock at rkhome1 superDoit % git status
>>> On branch v4.2
>>> Your branch is up to date with 'origin/v4.2'.
>>>
>>> nothing to commit, working tree clean
>>>
>>> The file does exist as a link in the rowan_371 directory pointing to the
>>> stone file.
>>>
>>> regkrock at rkhome1 rowan_371 % ls -lsa
>>> total 288
>>>   0 drwxr-xr-x  16 regkrock  wheel     512  8 Jul 13:25 .
>>>   0 drwxr-xr-x   3 regkrock  wheel      96  3 Jul 14:44 ..
>>>   0 lrwxr-xr-x   1 regkrock  wheel      64  3 Jul 14:44
>>> .GDKStoneSpec.ston ->
>>> /opt/GsDevKit/data/gsdevkit_stones/stones/rkhome1/rowan_371.ston
>>>
>>> This is the content of the file:
>>>
>>> GDKStoneSpec {
>>> #name : 'rowan_371',
>>> #parentRegistryName : 'rkhome1',
>>> #parentRegistryPath :
>>> '$STONES_DATA_HOME/gsdevkit_stones/registry/rkhome1.ston',
>>> #root : '/opt/GsDevKit/projects/stones/rowan_371',
>>> #stoneHost : 'rkhome1.fios-router.home',
>>> #stoneName : 'rowan_371',
>>> #gemHost : 'rkhome1.fios-router.home',
>>> #gemTask : 'gemnetobject',
>>> #userId : 'SystemUser',
>>> #password : 'swordfish',
>>> #stoneDirectorySpecName : 'default_rowan',
>>> #stoneDirectorySpec : GDKrowanStoneDirectorySpec {
>>> #name : 'default_rowan',
>>> #dbfSource : '$GEMSTONE/bin/extent0.rowan.dbf',
>>> #backups : 'backups',
>>> #bin : 'bin',
>>> #extents : 'extents',
>>> #logs : 'logs',
>>> #netldiPort : 50467,
>>> #stats : 'stats',
>>> #tranlogs : 'tranlogs',
>>> #snapshots : 'snapshots',
>>> #product : 'product',
>>> #customenv : {
>>> 'stone_dir' : '/opt/GsDevKit/projects/stones/rowan_371',
>>> 'STONES_DATA_HOME' : '/opt/GsDevKit/data',
>>> 'GEMSTONE' : '/opt/GsDevKit/gemstone/GemStone64Bit3.7.1-arm64.Darwin'
>>> },
>>> #userId : 'SystemUser'
>>> },
>>> #gemstoneVersionString : '3.7.1'
>>> }
>>>
>>> And the permissions of the rowan_371.ston file is:
>>>
>>> regkrock at rkhome1 GemStone64Bit3.7.1-arm64.Darwin % cd
>>> /opt/GsDevKit/data/gsdevkit_stones/stones/rkhome1
>>> regkrock at rkhome1 rkhome1 % ls -l
>>> total 8
>>> -rw-r--r--  1 regkrock  wheel  1034  3 Jul 14:44 rowan_371.ston
>>>
>>> Also, the version report is below:
>>>
>>> --------------------
>>> Gem Version Report for 'gs64stone'
>>> --------------------
>>> nodeName
>>> = rkhome1.fios-router.home
>>> osName
>>> = Darwin
>>> processId
>>> = 76445
>>> processorCount
>>> = 10
>>> gsBuildSerialNum
>>> = 2023-08-24T14:12:58-07:00 87d4894f48fb88b6589e392e200ea1a60e1a143b
>>> gsRelease
>>> = 3.7.0
>>> osRelease
>>> = 23.5.0
>>> cpuKind
>>> = arm64
>>> gsBuildArchitecture
>>> = Darwin (macOS)
>>> gsVersion
>>> = 3.7.0
>>> osVersion
>>> = Darwin Kernel Version 23.5.0: Wed May  1 20:12:58 PDT 2024;
>>> root:xnu-10063.121.3~5/RELEASE_ARM64_T6000
>>> gsBuildDate
>>> = Thu Aug 24 14:21:20 2023 (branch 3.7.0)
>>> gsBuildType
>>> = FAST
>>> cpuArchitecture
>>> = arm64
>>> rowanVersion
>>> = 2.5.0
>>> rowanLoadedCommitId
>>> = 2997fe3fc
>>>
>>> --------------------
>>>
>>>
>>>
>>> On Jul 8, 2024, at 3:06 PM, Dale Henrichs <
>>> dale.henrichs at gemtalksystems.com> wrote:
>>>
>>> Reg,
>>>
>>> Thanks for the detailed stack ... I see that the code is getting an
>>> error checking for the file .GDKStoneSpec.ston and this check is made
>>> by superDoit pretty early on in the process of running a .stone script so
>>> this looks an awful lot like a GemStone error.
>>>
>>> The file .GDKStoneSpec.ston should exist in the the stone directory
>>> where you appear to be running the script, so could you double check that
>>> the file does indeed exist? That way we should be able to reproduce the
>>> problem internally.
>>>
>>> We do run Github CI tests for a number of different OSX versions for
>>> branch v2 [1] and branch v2.1[2] ... so it would be useful to know the
>>> version of OSX  and the version of GsDEvKit_stones you are using as well ...
>>>
>>> Dale
>>>
>>> [1] https://github.com/GsDevKit/GsDevKit_stones/actions/runs/9699834332
>>> [2] https://github.com/GsDevKit/GsDevKit_stones/actions/runs/9699899207
>>>
>>>
>>> On Mon, Jul 8, 2024 at 10:44 AM Reg Krock via GemStone-Smalltalk <
>>> gemstone-smalltalk at lists.gemtalksystems.com> wrote:
>>>
>>>> I have been trying for a while to fix this problem. And I have not been
>>>> able to do it. Does anyone have any ideas.
>>>>
>>>> Thanks
>>>>
>>>> Reg
>>>>
>>>> I am getting an error trying to load the gt4gemstone code into a
>>>> rowan_371 extent.
>>>> It has to do with getcwd (See frame 6)
>>>>
>>>> Environment: OS/X with GsDevKit_stones
>>>>
>>>> The gslist command results:
>>>>
>>>> Status        Version    Owner     Started     Type       Name
>>>> -------      --------- --------- ------------ ------      ----
>>>> exists       3.7.1     regkrock  Jul 08 11:12 Stone       rowan_371
>>>> exists       3.7.1     regkrock  Jul 08 11:12 cache
>>>> rowan_371~53f4ddf531c645f9
>>>>
>>>> The gem.conf file is defined as:
>>>> GEM_TEMPOBJ_CACHE_SIZE = 1000000;
>>>>
>>>> The rowan_371 server has been created and I am attempting to load
>>>> gt4gemstone into the rowan_371 server.
>>>>
>>>> I run the following command:
>>>>
>>>> regkrock at rkhome1 rowan_371 % installProject.stone
>>>> file:$STONES_PROJECTS_HOME/git/gt4gemstone/rowan/specs/gt4gemstone.ston  \
>>>>     --projectsHome=$STONES_PROJECTS_HOME/git/gt4gemstone -D
>>>>
>>>> I receive the following error:
>>>>
>>>> ERROR 2718 , a ArgumentError occurred (error 2718), attempt to create a
>>>> CByteArray or CPointer that would reference VM memory
>>>>
>>>>  Near line 8 of file
>>>> /opt/GsDevKit/git/superDoit/gemstone/superdoit_boot_debug_2.tpz
>>>>
>>>>
>>>> The stack is:
>>>>
>>>> topaz 1> stack
>>>> ==> 1 ArgumentError (AbstractException) >> _signalToDebugger @11 line 8
>>>>     receiver [26274049 size:5  ArgumentError] a ArgumentError occurred
>>>> (error 2718), attempt to create a CByteArray or CPointer that would referen
>>>> ...(12 more bytes)
>>>>
>>>>     res nil
>>>>     blk nil
>>>>     proc nil
>>>> (skipped 1 temps)
>>>> 2 ArgumentError (AbstractException) >> defaultAction @2 line 18
>>>>     receiver [26274049 size:5  ArgumentError] a ArgumentError occurred
>>>> (error 2718), attempt to create a CByteArray or CPointer that would referen
>>>> ...(12 more bytes)
>>>>
>>>> 3 ArgumentError (AbstractException) >> _defaultAction @4 line 4
>>>>     receiver [26274049 size:5  ArgumentError] a ArgumentError occurred
>>>> (error 2718), attempt to create a CByteArray or CPointer that would referen
>>>> ...(12 more bytes)
>>>>
>>>>     res nil
>>>> 4 ArgumentError (AbstractException) >> _signalFromPrimitive @2 line 10
>>>>     receiver [26274049 size:5  ArgumentError] a ArgumentError occurred
>>>> (error 2718), attempt to create a CByteArray or CPointer that would referen
>>>> ...(12 more bytes)
>>>>
>>>>     res nil
>>>>     num nil
>>>> 5 CCallout >> callWith:errno:                   @1 line 34
>>>>     receiver [26195457  CCallout]     aCCallout getcwd
>>>>     argsArray [26189825 size:2  Array] anArray
>>>>     errnoArg [26189057 size:1  Array] anArray
>>>> 6 FsLibcUnistd_macOS (FsLibcUnistd) >> getcwd   @6 line 18
>>>>     receiver [26127361  FsLibcUnistd_macOS] aFsLibcUnistd_macOS
>>>>     errnoHolder [26189057 size:1  Array] anArray
>>>>     result nil
>>>> 7 FsMacOSStore_arm64 (DiskStore) >> currentWorkingDirectoryPath @3 line
>>>> 5
>>>>     receiver [26043649  FsMacOSStore_arm64] aFsMacOSStore_arm64
>>>>     pathString nil
>>>> 8 FsDiskFileSystem (FileSystem) >> workingDirectoryPath @3 line 6
>>>>     receiver [26038273  FsDiskFileSystem] aFsDiskFileSystem
>>>> 9 FsDiskFileSystem (FileSystem) >> workingDirectory @2 line 6
>>>>     receiver [26038273  FsDiskFileSystem] aFsDiskFileSystem
>>>> (skipped 1 temps)
>>>> 10 SystemResolver >> workingDirectory            @3 line 4
>>>>     receiver [25961985  SystemResolver] aSystemResolver
>>>> 11 SystemResolver (Object) >> perform:           @1 line 8
>>>>     receiver [25961985  SystemResolver] aSystemResolver
>>>>     aSelectorSymbol [20363009 size:16  Symbol] workingDirectory
>>>> 12 SystemResolver (FileSystemResolver) >> resolve: @4 line 3
>>>>     receiver [25961985  SystemResolver] aSystemResolver
>>>>     aSymbol [20363009 size:16  Symbol] workingDirectory
>>>> 13 FileLocator >> resolve                        @4 line 2
>>>>     receiver [25801729  FileLocator]  aFileLocator
>>>> 14 FileLocator >> asFileReference                @2 line 2
>>>>     receiver [25801729  FileLocator]  aFileLocator
>>>> 15 Executed Code                                 @3 line 1
>>>>     receiver [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>> (skipped 3 temps)
>>>> 16 GsNMethod >> _executeInContext:               @1 line 11
>>>>     receiver [25679873 size:43  GsNMethod] aGsNMethod
>>>>     anObject [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>> 17 String >> evaluateInContext:symbolList:       @3 line 10
>>>>     receiver [25652481 size:512  String] (FileLocator workingDirectory
>>>> asFileReference / '.GDKStoneSpec.ston') exists\n ifTrue: [ self defin
>>>> ...(412 more bytes)
>>>>
>>>>     anObject [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>>     aSymbolList [25646337 size:8  SymbolList] aSymbolList
>>>> 18 SuperDoitExecutionClass (SuperDoitExecutionMetadataClass) >> theDoit
>>>> @4 line 15
>>>>     receiver [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>> 19 [] in SuperDoitExecution >> doit              @20 line 6
>>>>     self [25678593  SuperDoitExecutionClass] aSuperDoitExecutionClass
>>>>     receiver [25601793 size:0  ExecBlock0] anExecBlock0
>>>>     self [25678593  SuperDoitExecutionClass] aSuperDoitExecutionClass
>>>> (skipped 1 temps)
>>>> 20 ExecBlock0 (ExecBlock) >> on:do:              @3 line 44
>>>>     receiver [25601793 size:0  ExecBlock0] anExecBlock0
>>>>     exceptionSelector [25575169 size:3  ExceptionSet] anExceptionSet
>>>>     handlerBlock [25574401 size:0  ExecBlock1] anExecBlock1
>>>>     fastPath true
>>>> 21 SuperDoitExecutionClass (SuperDoitExecution) >> doit @4 line 8
>>>>     receiver [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>>     res nil
>>>>     gotEx [26274049 size:5  ArgumentError] a ArgumentError occurred
>>>> (error 2718), attempt to create a CByteArray or CPointer that would referen
>>>> ...(12 more bytes)
>>>>
>>>>     exitClientMessage nil
>>>>     exitClientStatus nil
>>>> 22 SuperDoitDoitCommand >> executeAgainst:       @27 line 19
>>>>     receiver [25486593  SuperDoitDoitCommand] aSuperDoitDoitCommand
>>>>     aCommandParser [25485569  SuperDoitCommandParser]
>>>> aSuperDoitCommandParser
>>>>     instance [25678593  SuperDoitExecutionClass]
>>>> aSuperDoitExecutionClass
>>>> (skipped 1 temps)
>>>> 23 SuperDoitDoitCommand >> executeAgainst:onErrorDo: @2 line 4
>>>>     receiver [25486593  SuperDoitDoitCommand] aSuperDoitDoitCommand
>>>>     aCommandParser [25485569  SuperDoitCommandParser]
>>>> aSuperDoitCommandParser
>>>>     errorBlock [25479169 size:0  ExecBlock] anExecBlock
>>>> 24 [] in SuperDoitCommandDefinition >> executeAgainst:onErrorDo: @7
>>>> line 3
>>>>     self nil
>>>>     receiver [25474049 size:0  ExecBlock1] anExecBlock1
>>>>     command [25486593  SuperDoitDoitCommand] aSuperDoitDoitCommand
>>>>     errorBlock [25479169 size:0  ExecBlock] anExecBlock
>>>>     aCommandParser [25485569  SuperDoitCommandParser]
>>>> aSuperDoitCommandParser
>>>> (skipped 1 temps)
>>>> 25 OrderedCollection (Collection) >> do:         @5 line 10
>>>>     receiver [25466881 size:8  OrderedCollection] anOrderedCollection
>>>>     aBlock [25474049 size:0  ExecBlock1] anExecBlock1
>>>>     i 8
>>>> (skipped 2 temps)
>>>> 26 SuperDoitCommandDefinition >> executeAgainst:onErrorDo: @3 line 3
>>>>     receiver [25463297  SuperDoitCommandDefinition]
>>>> aSuperDoitCommandDefinition
>>>>     aCommandParser [25485569  SuperDoitCommandParser]
>>>> aSuperDoitCommandParser
>>>>     errorBlock [25479169 size:0  ExecBlock] anExecBlock
>>>> (skipped 1 temps)
>>>> 27 [] in SuperDoitCommandParser >> parseAndExecuteScriptFile: @22 line
>>>> 17
>>>>     self [25485569  SuperDoitCommandParser] aSuperDoitCommandParser
>>>>     receiver [25456385 size:0  ExecBlock0] anExecBlock0
>>>>     command [25486593  SuperDoitDoitCommand] aSuperDoitDoitCommand
>>>>     self [25485569  SuperDoitCommandParser] aSuperDoitCommandParser
>>>> 28 ExecBlock0 (ExecBlock) >> ensure:             @2 line 12
>>>>     receiver [25456385 size:0  ExecBlock0] anExecBlock0
>>>>     terminationBlock [25428481 size:0  ExecBlock] anExecBlock
>>>>     result nil
>>>>     b nil
>>>> 29 SuperDoitCommandParser >> parseAndExecuteScriptFile: @4 line 53
>>>>     receiver [25485569  SuperDoitCommandParser] aSuperDoitCommandParser
>>>>     scriptFilePath [25424897 size:58  String]
>>>> /opt/GsDevKit/git/GsDevKit_stones/bin/installProject.stone
>>>> (skipped 3 temps)
>>>> 30 SuperDoitCommandParser class >> processInputFile @29 line 21
>>>>     receiver [26255361  SuperDoitCommandParser class]
>>>> SuperDoitCommandParser
>>>>     args [25324801 size:11  Array] anArray
>>>>     scriptArgStart 6
>>>>     argIndex 7
>>>>     scriptFile [25424897 size:58  String]
>>>> /opt/GsDevKit/git/GsDevKit_stones/bin/installProject.stone
>>>>     scriptArgs [25323777 size:3  Array] anArray
>>>>     scriptArgIndex 8
>>>> (skipped 1 temps)
>>>> 31 Executed Code                                 @2 line 6
>>>>     receiver nil
>>>> 32 GsNMethod class >> _gsReturnToC               @1 line 11
>>>>     receiver [144897  GsNMethod class] GsNMethod
>>>>   [GsProcess 26291457]
>>>> topaz 1>
>>>>
>>>>
>>>> _______________________________________________
>>>> GemStone-Smalltalk mailing list
>>>> GemStone-Smalltalk at lists.gemtalksystems.com
>>>> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>>>>
>>>
>>> _______________________________________________
>> GemStone-Smalltalk mailing list
>> GemStone-Smalltalk at lists.gemtalksystems.com
>> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>>
>>
>> _______________________________________________
>> GemStone-Smalltalk mailing list
>> GemStone-Smalltalk at lists.gemtalksystems.com
>> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>>
> _______________________________________________
> GemStone-Smalltalk mailing list
> GemStone-Smalltalk at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20240713/22da9291/attachment-0001.htm>


More information about the GemStone-Smalltalk mailing list