[GemStone-Smalltalk] GemStone-Smalltalk Digest, Vol 129, Issue 4

James Foster Smalltalk at JGFoster.net
Thu May 29 15:28:02 PDT 2025


Ian,

I would prefer a more explicit wait of not exiting than running netldi in the foreground. I’ve seen two recommendations:
	CMD ["tail", "-f", "/dev/null”]
	CMD ["sleep", "infinity"]

> … the remote page cache becomes stale on system reboot ...
> Note that the container lives in all the above cases ...

Could you say more about your architecture? You have the stone in one Docker container and a gem in another Docker container? Which container lives and which one reboots?

The idea of scaling gems with Docker sounds plausible, but I’ve not heard of anyone doing it.

James

> On May 27, 2025, at 7:34 PM, Ian via GemStone-Smalltalk <gemstone-smalltalk at lists.gemtalksystems.com> wrote:
> 
> Hi Norm, James,
> 
> I think this is worth exploring. Please bear with me.
> 
> To answer your question Norm, container entry points, however you run them (docker run, compose entrypoint:, entry point in the dockerfile, whatever) runs as PID 1.
> 
> I want to run a script, call it startup.sh, like this in my dockerfile:
> 
> ENTRYPOINT: ["/some/container/path/startup.sh"]
> 
> The scripts job is to:
> 
> 1. startnetldi -s
> 2. topaz -I topazini -S instructions.topaz (simplified)
> 
> Once these two requirements are met, startup.sh exits. Meaning PID 1 also exits and the container shuts down (depending on you compose settings, an endless restart likely ensues).
> 
> Now, when I run step one as 'netldid -s,' netldid runs on the foreground. PID 1 lives on and the container persists. Connections to the stone live, my application runs in the gem running in the container and all is good.
> 
> The issue I am now trying to resolve is the fact that the remote page cache becomes stale on system reboot, system crashes or connection interruptions. 
> 
> Note that the container lives in all the above cases, netldid process persists and is happy but a stale page cache is terminal. 
> 
> I must bring down the containers by some manual method: docker compose down, or in terms of kubernetes, restart the deployment, to have the cache regenerated from scratch. 
> 
> This is fine as everything persists in the stone. However, provisions must be made to handle containers whose connection to the stone is terminated/interrupted for whatever the reason.
> 
> From here: 
> 
> My goal is to run all connections to the stone using x509 enabled gems for all connecting entities of whatever type. The above is the beginnings of a POC to test what hurdles had to be overcome; Whether or not it would even be possible. It is doable, I think.
> 
> Having started the full read of the x509 guide, I come to realize that the cache is created at the prompting from the server-side x509 enabled netldi through the host agent. In this case, it seem that it may be possible to build container resilience into what I a trying to do as the remote netldi must be alive, requesting a login from the server by saying "here I am, here is my port." What I don't know is that if the remote netldi sees a local cache will it still fail or will it say, you silly cache, you're busted, let's clean up and make a new one.
> 
> If this can be made to work Gemstone/S remote gems could sit behind some kind of load balancer and run HA in docker, docker swarm or any kubernetes variety fully and robustly containerized and talk to a stone that sits as they do now, on a dedicated server managing connections, transactions and persisting data to extents until the cows come home.
> 
> I feel like this has probably already been done but can't find a trailblazer on the web to guide me.
> 
> I do know that I can run netldi on many nodes, bare metal or VM fronted by some form of load balancer for HA, scalability is simply much easier using containers and a container management system of some kind. 
> 
> Seems to me that remote gems are the perfect, secure and safe and scalable way to run Smalltalk based microservices in remote containerize gems with persistent object storage to boot!
> 
> Long store short, to my question: Am I approaching this in the correct way? Is what I am trying to do even possible?
> 
> Ian
> 
> Sent with Proton Mail secure email.
> 
> On Tuesday, May 27th, 2025 at 4:00 PM, gemstone-smalltalk-request at lists.gemtalksystems.com <gemstone-smalltalk-request at lists.gemtalksystems.com> wrote:
> 
>> Send GemStone-Smalltalk mailing list submissions to
>> gemstone-smalltalk at lists.gemtalksystems.com
>> 
>> To subscribe or unsubscribe via the World Wide Web, visit
>> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>> or, via email, send a message with subject or body 'help' to
>> gemstone-smalltalk-request at lists.gemtalksystems.com
>> 
>> You can reach the person managing the list at
>> gemstone-smalltalk-owner at lists.gemtalksystems.com
>> 
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of GemStone-Smalltalk digest..."
>> 
>> 
>> Today's Topics:
>> 
>> 1. netldid (Ian)
>> 2. Re: netldid (James Foster)
>> 3. Re: netldid (Norm Green)
>> 4. Re: netldid (Ian)
>> 
>> 
>> ----------------------------------------------------------------------
>> 
>> Message: 1
>> Date: Mon, 26 May 2025 19:33:08 +0000
>> From: Ian icjohnson at proton.me
>> 
>> To: "gemstone-smalltalk at lists.gemtalksystems.com"
>> gemstone-smalltalk at lists.gemtalksystems.com
>> 
>> Subject: [GemStone-Smalltalk] netldid
>> Message-ID:
>> PejD_sVleK6zxKRUkWsS3REI1mSSbkKihZU8MKvy-t-r1_b4wyM-WvvRxoRr8gIYVe5uQ4TXtf5G0BxUZ2zFNo-YwKfY6v2do6NGknySb7U=@proton.me
>> 
>> 
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Hi GemStoners,
>> 
>> Are there plans in the works to allow netldid to run in the foreground?
>> 
>> This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)
>> 
>> On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?
>> 
>> Thanks in advance,
>> Ian
>> 
>> Sent with Proton Mail secure email.
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20250526/67818374/attachment-0001.htm
>> 
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Mon, 26 May 2025 13:25:35 -0700
>> From: James Foster Smalltalk at JGFoster.net
>> 
>> To: Ian icjohnson at proton.me
>> 
>> Cc: "gemstone-smalltalk at lists.gemtalksystems.com"
>> gemstone-smalltalk at lists.gemtalksystems.com
>> 
>> Subject: Re: [GemStone-Smalltalk] netldid
>> Message-ID: 24CFB521-8477-4700-94F5-3E15CA35E192 at JGFoster.net
>> 
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Ian,
>> 
>> A number of people have created Docker images for GemStone/S. This is fine as long as you map the database to something outside the container (else it will be lost when the container stops).
>> 
>> See https://downloads.gemtalksystems.com/docs/GemStone64/3.7.x/GS64-SysAdminGuide-3.7/B-CommandReference.htm#pgfId-857966 to let netldid run in the foreground.
>> 
>> James
>> 
>>> On May 26, 2025, at 12:33?PM, Ian via GemStone-Smalltalk gemstone-smalltalk at lists.gemtalksystems.com wrote:
>>> 
>>> Hi GemStoners,
>>> 
>>> Are there plans in the works to allow netldid to run in the foreground?
>>> 
>>> This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)
>>> 
>>> On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?
>>> 
>>> Thanks in advance,
>>> 
>>> Ian
>>> 
>>> Sent with Proton Mail https://proton.me/mail/home secure email.
>>> _______________________________________________
>>> 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/20250526/eebd20d9/attachment-0001.htm
>> 
>> 
>> ------------------------------
>> 
>> Message: 3
>> Date: Mon, 26 May 2025 13:43:48 -0700
>> From: Norm Green norm.green at gemtalksystems.com
>> 
>> To: gemstone-smalltalk at lists.gemtalksystems.com
>> Subject: Re: [GemStone-Smalltalk] netldid
>> Message-ID: 7f994942-644d-4801-806e-a3c3f419962e at gemtalksystems.com
>> 
>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>> 
>> Hi Ian,
>> 
>> I don't fully understand why you want to run netldi in the foreground.
>> That said, startnetldi forks $GEMSTONE/sys/netldid with appropriate
>> arguments, so you could run that in the foreground.
>> 
>> Norm Green
>> 
>> 
>> On 5/26/2025 12:33 PM, Ian via GemStone-Smalltalk wrote:
>> 
>>> Hi GemStoners,
>>> 
>>> Are there plans in the works to allow netldid to run in the foreground?
>>> 
>>> This would allow the running of startnetldi -s in a container without
>>> an infinite loop and a long running sleep statement (Better way?)
>>> 
>>> On that note, I am able to containerize a running client application,
>>> linked and RPC; Am I running down a road that will eventually bonk me
>>> in the head?
>>> 
>>> Thanks in advance,
>>> 
>>> Ian
>>> 
>>> Sent with Proton Mail https://proton.me/mail/home secure email.
>>> 
>>> _______________________________________________
>>> 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/20250526/8b7b14ed/attachment-0001.htm
>> 
>> 
>> ------------------------------
>> 
>> Message: 4
>> Date: Mon, 26 May 2025 21:05:20 +0000
>> From: Ian icjohnson at proton.me
>> 
>> To: James Foster Smalltalk at JGFoster.net
>> 
>> Cc: "gemstone-smalltalk at lists.gemtalksystems.com"
>> gemstone-smalltalk at lists.gemtalksystems.com
>> 
>> Subject: Re: [GemStone-Smalltalk] netldid
>> Message-ID:
>> 2OoOBEiO6J-fYbKZwRSH68GLdy_pWxVzfCcdsPW6lpox5PVN-6Qp6m9ZUJHG8YC_xCOnX1pi-PJ2zrOgLQRC86SgPeSX2PT5hpACzicoPGM=@proton.me
>> 
>> 
>> Content-Type: text/plain; charset="utf-8"
>> 
>> netldid -s
>> 
>> The wording got me.
>> 
>> Thanks!
>> 
>> Ian
>> 
>> Sent with Proton Mail secure email.
>> 
>> On Monday, May 26th, 2025 at 5:25 PM, James Foster Smalltalk at JGFoster.net wrote:
>> 
>>> Ian,
>>> 
>>> A number of people have created Docker images for GemStone/S. This is fine as long as you map the database to something outside the container (else it will be lost when the container stops).
>>> 
>>> See https://downloads.gemtalksystems.com/docs/GemStone64/3.7.x/GS64-SysAdminGuide-3.7/B-CommandReference.htm#pgfId-857966 to let netldid run in the foreground.
>>> 
>>> James
>>> 
>>>> On May 26, 2025, at 12:33?PM, Ian via GemStone-Smalltalk gemstone-smalltalk at lists.gemtalksystems.com wrote:
>>>> 
>>>> Hi GemStoners,
>>>> 
>>>> Are there plans in the works to allow netldid to run in the foreground?
>>>> 
>>>> This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)
>>>> 
>>>> On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?
>>>> 
>>>> Thanks in advance,
>>>> Ian
>>>> 
>>>> Sent with Proton Mail secure email.
>>>> _______________________________________________
>>>> 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/20250526/b228663a/attachment-0001.htm
>> 
>> 
>> ------------------------------
>> 
>> Subject: Digest Footer
>> 
>> _______________________________________________
>> GemStone-Smalltalk mailing list
>> GemStone-Smalltalk at lists.gemtalksystems.com
>> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>> 
>> 
>> ------------------------------
>> 
>> End of GemStone-Smalltalk Digest, Vol 129, Issue 4
>> **************************************************
> _______________________________________________
> 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/20250529/3899c7cf/attachment-0001.htm>


More information about the GemStone-Smalltalk mailing list