I am in the process of transfering my code from 8.5.0 to 8.5.1 and I noticed, that my network aware IC based programs do not work any more. They crash and the walkback told me, that the "essci40" library could not be loaded. (OS memory 126).
After hours of debugging I found the location: It's within SciSocketManager>>primFdSetSize and this method is called during startup (SciComWIN>>initializePlatformSciConstants). Some strange stuffs I have found: 1.) SciComWIN>>initializePlatformSciConstants is called TWICE during startup of an IC based system (Logical error ? I think its initiated from loaded and startUp) 2.) The first time when this method is executed it is executed BEFORE PlatformLibrary is told to build its logical-to-physical mapping structures of external libraries (this is triggered by EsSystemConfiguration>ssomestartupmethods). Therefore primFdSetSize triggers to load an external library named "SOCKET_PRIMS", which is not available and therefore gives an OS error 126. Therefore all programs simple crash during startup. 3) Then I change the source code and added an aditional initialization of PlatformLibrary and the startup phase continues and after that source code point in (2) I noticed the call to initialize PlatformLibrary ( I think that code from EsSystemConfiguration). 4) Then some times later during startup SciComWIN>>initializePlatformSciConstants is called again. Any fix? -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/jWpQFcKe6N0J. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
I am upgrading from VA 7.5.1 to VA 8.5.1 and our application run as a Windows service hits this (in standard output):
1) Primitive failed in: SciSocketManager class>>#primFdSetSize due to OS error126 Process reportError: Primitive failed in: SciSocketManager class>>#primFdSetSize due to OS error126 We don't use ICs though. I have the 8.5.1 essci40.dll in the .exe and .icx (and start-in) directory, so I don't know why the DLL can't be found. Can someone confirm here that they have gotten a Windows service to work on 8.5.1? Marten, does this very normal-looking (abbreviated) stack look like what you were seeing that made you conclude primFdSetSize was being called too soon? Platform: OS subsystem: WIN32s CLIM subsystem: ES CLDT subsystem: ES XDDB subsystem: WIN CFS subsystem: WIN32s SCI subsystem: WIN CPM subsystem: ES SciSocketManager class(Object)>>#primitiveFailed:withArgument:backUp: SciSocketManager class(Object)>>#primitiveFailed SciSocketManager class>>#primFdSetSize SciComWIN class>>#initializePlatformSciConstants SciComWIN class>>#initializePlatformConstants SciComWIN class>>#loaded [] in <optimized block>(EmSystemConfiguration)>>#xdImageInitialize BlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo: BlockContextTemplate(Block)>>#when:do:exitWith:retryReturn: BlockContextTemplate(Block)>>#when:do: EmSystemConfiguration>>#executeStartupBlock:queueErrors: [] in EmSystemConfiguration>>#xdImageInitialize [] in Array(SequenceableCollection)>>#with:do: Array(ArrayedCollection)>>#do: Array(SequenceableCollection)>>#with:do: EmSystemConfiguration>>#xdImageInitialize EmSystemConfiguration>>#xdImageStartup You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/lZRGXHQ-hTEJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Yes, I would guess so - but Instantiation has a patch for this error (case 49467 - if it is the error) - both under Windows AND Unix.
Marten -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/1N8Jx2E2PUMJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
In reply to this post by Wayne Johnston
Another idea here - you noticed, that 8.5.1. brought additional entries in the ini files for external libraries (name mapping). I am not sure, what will happen if you use your old 7.5 abt.ini file without these additional sections.
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/Qs7xA9suxUQJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Marten, where can I find that patch for case 49467? And yes I did notice that [PlatformLibrary Name Mappings] section including SOCKET_PRIMS=essci40 but adding it to my old .ini file didn't help. Thanks!
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/3jvo_erH1HQJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Marten, thanks for sending me your patch. For the record, it contains EmApplicationSupport::EmSystemConfiguration version "V 8.5.1 [216] - MSK PATCHED 02". The change was just to comment the "PlatformLibrary initializeNameMappings" out of EmSystemConfiguration>>#startUp. But it didn't help, and I ended up determining things would not work with it. What fixed things for me was to go back to the old (1998) version of SciSocketManager class>>#loaded, which contained the "PlatformLibrary mapLogicalName: 'SOCKET_PRIMS' toPhysicalName: self libraryName". With this (and reviving SciComWIN::ScoSocketManager class>>#libraryName) my server came up fine. This implies (and tracing confirmed) that the SCI DLL is being loaded before the logical-physical mappings are loaded from the .ini file (#initializeNameMappings).
So is this an inherent bug, or a sometimes-bug since it has to do with the order of classes and apps that #xdImageInitialize starts up which could vary depending on the packaging rules, or am I doing something wrong?
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/N37NrmHF3-AJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Just to summarize here: I oversaw some stuff when sending you the patch. Therefore I send you now more code.
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/V2uU-qV_OPEJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Ah, Marten pointed out another part of the patch, and indeed with it things work! I take it Instantiations will be fixing it in 8.5.2? Thanks!
In CLIM>>EmSystemConfiguration>>initializeVM
-- initializeVM "Initialize the low level virtual machine and image objects. This must be performed on every image load before any other operations are performed." "Clear all pending finalizations from previous image invocations." Core registry at: 37 put: (EsQueue new: 1024). EsWeakList systemWeakList initialize: 1024. PlatformLibrary startUp; initializeNameMappings. PlatformFunction allSubclassesDo: [ :cl | cl unbindAll ]. EsEntryPoint startUp. Processor enableAsyncMessages: true You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/ADLwTnjKlPUJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Yes, this is the code I sent to Marten. It actually has 2 fixes in it:
On Friday, August 31, 2012 10:58:14 AM UTC-4, Wayne Johnston wrote: Ah, Marten pointed out another part of the patch, and indeed with it things work! I take it Instantiations will be fixing it in 8.5.2? Thanks! You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/A5eWudLD7fUJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
I'm having the same error but with the ODBC.
Runtime error: Primitive failed calling 'ODBCLibraryName':SQLAllocEnv from PlatformFunction>>#callWithArguments: due to OS error126. I've tried applying the patch below but I still get the same error. I'm also not getting a walkback log. I'm researching into this but need to get pass this OS error126. I'm using Win7 64-bit and VASmalltalk 8.5.1 if that helps. On Friday, August 31, 2012 4:03:41 PM UTC-4, John O'Keefe wrote: Yes, this is the code I sent to Marten. It actually has 2 fixes in it:-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/mEuuSDEv6w4J. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
I would suspect that this is because you don't have the lines such as ODBCLibraryName=odbc32 in your .ini file, in this section: [PlatformLibrary Name Mappings] See the migration guide - Migrating from Version 8.5 : Changed specification of ODBC dll or shared object in .INI file
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/vOCxbTP1lMoJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Hi Wayne,
Arrghhh!!! I hate when I don't read the manual. Thanks Wayne, that did it. On Tuesday, October 30, 2012 3:19:36 PM UTC-4, Wayne Johnston wrote: -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/PUU17I4z9vIJ. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Free forum by Nabble | Edit this page |