[Glass] GsDevKit for Docker

Jupiter Jones via Glass glass at lists.gemtalksystems.com
Tue Sep 11 14:51:11 PDT 2018


Hi,

I’m working on getting a kit together to easily setup and run GsDevKit stones on Kubernets and have an issue I need some help with.

To start with I’m simply making a docker image with the entire GsDevKit and a seaside stone installed to make sure it’s all working. I’ll create more usable components once I know I can get it installed :)

Starting with creating the docker image, there’s a slightly weird (but I guess not unexpected considering the environment) error calculating the memory sizes:

[Info] Setting up shared memory
  Total memory available is 7972 MB
  Max shared memory segment size is -16 MB
  Max shared memory allowed is -65536 MB
/opt/GsDevKit_home/bin/utils/installOsPrereqs: line 244: [: 18446744073692774399: integer expression expected
/opt/GsDevKit_home/bin/utils/installOsPrereqs: line 248: [: 18446744073692774399: integer expression expected
[Info] No need to increase max shared memory segment size
/opt/GsDevKit_home/bin/utils/installOsPrereqs: line 260: [: 18446744073692774399: integer expression expected
[Info] No need to increase max shared memory allowed

Regardless, since it’s not updating anything, it’s not really an issue - just thought I’d point it out.

I also noticed:

=================
   GsDevKit script: clone_gs_client_dev -o GsDevKit
              path: /opt/GsDevKit_home/bin/private/clone_gs_client_dev
=================
=================
   GsDevKit script: cloneGitHubProject GsDevKit GsDevKit_gs_client_dev dev
              path: /opt/GsDevKit_home/bin/private/cloneGitHubProject
=================
Cloning into 'dev'...
...finished :: cloneGitHubProject GsDevKit GsDevKit_gs_client_dev dev
>>>>>>
basename: missing operand
Try 'basename --help' for more information.
   Checkout 
>>>>>>
fatal: not a git repository: '/.git'

Haven’t looked into this one yet.

The main thing I encountered was while running:

installServerSeaside -c https -z 8383 gsdevkit342 3.4.2

The error appears just before the tODE server install, while starting netldi:

Restarting stone and netldi
=================
   GsDevKit script: startStone -b -N gsdevkit342
              path: /opt/GsDevKit_home/bin/startStone
=================
/opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/waitstone[Info]: GemStone version '3.4.2'
waitstone[Error]: Network service !#dir:/opt/GsDevKit_home/server/stones/gsdevkit342/logs#log:%N%P.log#server!gsdevkit342 was not found.
Network lookup failure; could not find server 'gsdevkit342' on host '5521dafaa573' because file not found: /opt/gemstone/locks/gsdevkit342..LCK;  service gsdevkit342 not found ; NetLDI service 'gs64ldi' not found on node 'localhost6' port 50377 :


Starting stone: gsdevkit342
--- 09/11/2018 07:51:55.246 UTC ---
stopstone[Info]: GemStone version '3.4.2'
stopstone[Info]: Server 'gsdevkit342' is not running.
startstone[Info]: GemStone version '3.4.2'
startstone[Info]: Starting Stone repository monitor gsdevkit342.
startstone[Info]: GEMSTONE is: '/opt/GsDevKit_home/server/stones/gsdevkit342/product'.
startstone[Info]: GEMSTONE_NRS_ALL is: '#dir:$GEMSTONE_LOGDIR#log:%N%P.log'.
startstone[Info]:  Ignoring  GEMSTONE_NRS_ALL for stone
startstone[Info]:
    GEMSTONE_SYS_CONF=/opt/GsDevKit_home/server/stones/gsdevkit342/extents/system.conf
    GEMSTONE_EXE_CONF=/opt/GsDevKit_home/server/stones/gsdevkit342/gsdevkit342.conf
stoned[Info]: Log file is '/opt/GsDevKit_home/server/stones/gsdevkit342/logs/gsdevkit342.log'.
startstone[Info]: GemStone server gsdevkit342 has been started, process 2327

=================
   GsDevKit script: startNetldi gsdevkit342
              path: /opt/GsDevKit_home/bin/startNetldi
=================
starting netldi gsdevkit342 

MessageNotUnderstood: receiver of "," is nil
UndefinedObject(Object)>>doesNotUnderstand: #,
UnixProcess>>processProxy:forkAndExec:arguments:environment:descriptors: in Block: [ :e | e , nullString ]
Array(SequenceableCollection)>>collect:
UnixProcess>>processProxy:forkAndExec:arguments:environment:descriptors:
ExternalUnixOSProcess>>forkChild
ExternalUnixOSProcess class>>forkAndExec:arguments:environment:descriptors:
UnixProcess>>forkAndExec:arguments:environment:descriptors:
UnixProcess>>forkJob:arguments:environment:descriptors:
GsDevKitStartnetldiCommandLineHandler class(GsDevKitAbstractCommandLineHandler class)>>runShellCommand:args:noError:
GsDevKitStartnetldiCommandLineHandler(GsDevKitAbstractCommandLineHandler)>>runShellCommand:args:
GsDevKitStartnetldiCommandLineHandler>>activate
GsDevKitStartnetldiCommandLineHandler class(CommandLineHandler class)>>activateWith:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in Block: [ aCommandLinehandler activateWith: commandLine ]
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [ self handleArgument: (self arguments ifEmpty: [ ...etc...
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
PharoCommandLineHandler>>activate
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
PharoCommandLineHandler class>>activateWith: in Block: [ super activateWith: aCommandLine ]
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
MorphicUIManager>>spawnNewProcess in Block: [ ...
BlockClosure>>newProcess in Block: [ ...
Error on or near line 99 :: devKitCommandLine startnetldi gsdevkit342 :: devKitCommandLine startnetldi gsdevkit342
Error on or near line 72 :: startNetldi gsdevkit342 :: startNetldi gsdevkit342
Error on or near line 139 :: startStone -b -N gsdevkit342 :: startStone -b -N gsdevkit342
Error on or near line 169 :: newExtent -s /opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/extent0.seaside.dbf gsdevkit342 :: newExtent -s /opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/extent0.seaside.dbf gsdevkit342
Error on or near line 209 :: createStone gsdevkit342 3.4.2 :: createStone gsdevkit342 3.4.2

Not sure about this one. It looks like startNetldi is being called with the right argument (just one string ‘gsdevkit342’) but maybe Pharo didn’t get it from the command line? Not sure how nil got into the arrayOfStrings that ended up at UnixProcess. Since this is all happening during the creation of a docker image, it makes it even harder to debug. Has anyone seen this error before, or know what could cause it?

I remember problems with netldi and hostnames, could that be the case here? Is there some confusion between “host” and “node” names:

Network lookup failure; could not find server 'gsdevkit342' on host '5521dafaa573' because file not found: /opt/gemstone/locks/gsdevkit342..LCK;  service gsdevkit342 not found ; NetLDI service 'gs64ldi' not found on node 'localhost6' port 50377 :

Any advice would be greatly appreciated.

Thanks.

J

PS. I’m running my own fork of GsDevKit, but I made sure it was up to date. Pretty much the only change for now is in installOSPreReqs to include ubuntu 18.04. I’ve checked this whole process with 16.04 and I get the same error so I’m pretty sure it’s not some weird OS related bug… still, ya never know :)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20180912/15610efd/attachment-0001.html>


More information about the Glass mailing list