Hi all, I think this is not a new issue, but I am experiencing it with increasing frequency on my Win 10 machine: When instantiating SqueakSSL, primitiveCreate fails. I don't see an error in the console so I cannot tell more details about the error. Sometimes restarting my image helps, but right now, it does not. Other images running with the same VM (202010232046) can still access the internet via SSL. Maybe it plays a role that the affected image puts the plugin much more under stress by always holding at least one open connection to a server. Is this a known problem? Are there any workarounds? Looking forward to a fix, — |
Oh no, this time the issue even persists after rebooting my operating system. — |
In reply to this post by David T Lewis
Well, I just found out that neither — |
> On 2021-03-13, at 6:35 AM, Christoph Thiede <[hidden email]> wrote: > > > Well, I just found out that neither Smalltalk listBuiltinModules nor Smalltalk listLoadedModules contains the SqueakSSL plugin that is used by #primitiveSSLCreate. But it is also not loaded in a fresh trunk image where SSL works without any problems. Is something wrong with this? How could I reload the plugin? It's an external plugin on all my systems - Mac & linux - so you shouldn't see it in the listBuiltinModules list. If I start a fresh image, the SSL plugin is not loaded. If I run the SqueakSSLTest tests in the TestRunner, they all pass and the plugin is in the listLoadedModules list. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Strange OpCodes: WDS: Warp Drive, Scotty! |
In reply to this post by David T Lewis
Christoph, where does your SqueakSSL.dll live? Is it the right architecture (32/64-bit)? — |
In reply to this post by David T Lewis
Thanks, Tim, this description makes sense and it looks the same in my fresh image! So the problem is that my problematic image does not automatically load the SSL plugin when invoking the primitive?
It's both 64-bit. I have just made two more observations:
There has already been a similar issue reported on the mailing-list, but apparently, it has not yet been solved: http://lists.squeakfoundation.org/pipermail/vm-dev/2017-June/025516.html — |
In reply to this post by David T Lewis
Can you please tell where the SqueakSSL.dll is located? and maybe find out which version you have? — |
In reply to this post by David T Lewis
In my default configuration, the locations are as follows:
However, the problem still exists when I change the paths as follows:
If I run a fresh trunk image with Squeak.exe, after evaluating In the affected image, the module does not appear in the list. — |
In reply to this post by David T Lewis
Here is a stack trace from Visual Studio (collected by attaching the debugger to running process):
Is this helpful in any way? :-) — |
In reply to this post by David T Lewis
can you do — |
In reply to this post by David T Lewis
Also, do you get such a backtrace when you invoke the method of UUID that contains — |
In reply to this post by David T Lewis
202010232046:
202003021730:
In the 202010232046 VM,
So yes, the stack appears to be indentical. — |
In reply to this post by David T Lewis
so, this hints towars the general Module loading. — |
In reply to this post by David T Lewis
Sorry for the late reply. I'm not yet very familiar with building the VM and did not debug it before at all As far as I can tell, everything looks fine when Still, these calls raise an access violation. The other attempts with Does it matter that according to the Process Explorer, the current working directory of Squeak.exe points to the location of the image file rather than to the location of the VM? According to the docs, this should not matter? By the way, the SSL plugin can be successfully loaded when running the same image in WSL (Ubuntu). So it's indeed a VM problem. BTW: When trying to run a 64-bit image in a 32-bit VM (which does not work, of course), an exception is generated from the following stack:
Shouldn't a meaningful error window be shown here instead? Do you have any idea why this is broken? I also noticed that the — |
In reply to this post by David T Lewis
I tried to work with the windows stuff today. — |
In reply to this post by David T Lewis
Hm ... for me, the cygwin approach has worked in the end ... anyone else? — |
In reply to this post by David T Lewis
Since I also observed this issue with the FFI-Plugin and OSProcess-Plugin under Windows 10, I suspect an issue with module loading in general. On my machine, this sometimes happens after, for example, performing a Windows update. I suspect some DLL caching issue. If I had the time, I would take a closer look at how the VM loads modules on Windows and then cosult the MSDN documentation to then reason about the circumstances and edge cases. — |
In reply to this post by David T Lewis
Forget most of the above, I just made a very interesting observation! :-) Currently, the RAM size/disk size of my repaired image is only a couple of megabytes below 2^27 bytes. The defect image is 10 MB larger than this threshold. After loading a 100 MB file into the repaired image and restarting it, the module loading fails again. After freeing the file in the image and restarting it again, the module loading works again. So the next question is: How could this happen? Are there any RAM size limits that I should be aware of? Or could this even be a bug in the — |
In reply to this post by David T Lewis
Got it! I managed to reproduce the issue! Steps to reproduce:
E voilá, Can anyone else reproduce this? My config is: Windows 2004, 64-bit VM, 16 GB RAM, could there be more relevant parameters? — |
In reply to this post by David T Lewis
Well, I wouldn't immediately celebrate "Got it!" There is something wrong with module loading. Is there some interference between Squeak's object memory and how modules are loaded? Maybe take a look at how primitive 571 is implemented. ( — |
Free forum by Nabble | Edit this page |