Karl Nelson <nelso...@llnl.gov> added the comment:

I looked more at the logs to see if I can find out what to instrument next.   
The log files unfortunately don't diff well because every line contains a 
timestamp so I can't a proper alignment as well as all the real addresses.  So 
I wrote a short program to convert all the numbers into an "X".

After doing so I find there is a single difference in the process between 
loading from a py file and a pyc file.


##### import _jpype
## Only if loaded from a Py file
trclnk64: 001 GetProcAddress(7ffc4c710000,FlsGetValue)
X X X trclnk64: 001 GetProcAddress(,) -> X
## All
X X X trclnk64: 001 
LoadLibraryExW(C:\Users\nelson85\AppData\Local\Programs\Python\Python39\python3,0,1000)
X X X trclnk64: 001 LoadLibraryExW(,,) -> X
X X X trclnk64: ### X 
C:\Users\nelson85\AppData\Local\Programs\Python\Python39\python3.DLL 000140bc
####  So here is the call that fails....
X X X trclnk64: 001 
LoadLibraryExW(c:\users\nelson85\documents\devel\open\jpype\_jpype.cp39-win_amd64.pyd,0,1100)
X X X trclnk64: 001 LoadLibraryExW(api-ms-win-core-synch-l1-2-0,0,800)
X X X trclnk64: 001 LoadLibraryExW(,,) -> X
X X X trclnk64: ### X C:\WINDOWS\System32\KERNELBASE.dll 002b306b
X X X trclnk64: ntdll.dll [7ffc4c974138 X

So the problem is something that happened before the LoadLibraryExW call when 
python3.dll was accessed.  The correct path called FlsGetValue  while the 
incorrect one skipped it which lead to a failure.

Thus my conclusion is that the vehicle left the edge of the cliff just prior to 
LoadLibraryExW(_jpype) and hit the ocean when C++ runtime library was requested.

Does that point to anything we can use to solve this?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42529>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to