Opened 7 years ago

Closed 7 years ago

#298 closed defect (no change needed)

CSTRINGIO.PYD cannot be loaded (dlopen rc=123)

Reported by: Lewis Rosenthal Owned by:
Priority: major Milestone:
Component: python Version:
Severity: highest Keywords:
Cc: StevenHL

Description

CSTRINGIO.PYD has an illegal OS/2 DLL name (not 8.3). Hence:

  #define ERROR_INVALID_NAME      123     /* MSG%INVALID_NAME */

This keeps yum from being able to run:

  There was a problem importing one of the Python modules 
  required to run yum. The error leading to the problem was:

     dlopen rc=193 extra=C:\USR\LIB\PYTHON2.7\LIB-DYNLOAD\CSTRINGIO.PYD

  Please install a package which provides this module, or 
  verify that the module is installed correctly.

Oddly, this does not seem to affect yum on all processors or arches, however, we have seen this internally at Arca Noae, and we have a ticket open for ANPM.

Change History (5)

comment:1 by StevenHL, 7 years ago

This is a side effect of relatively recent change that changed how dynload_shlib.c maps module names to legal DLL names. In prior versions

from cStringIO import StringIO

would map cStringIO to cStringI.pyd which exists and can be loaded.

comment:2 by StevenHL, 7 years ago

Cc: StevenHL added

comment:3 by Silvan Scherrer, 7 years ago

Cstringio.pyd should be a symlink pointing to the real pyd.

comment:4 by StevenHL, 7 years ago

Yes, I figured this out. I did my initial testing against an older python setup, which did install cStringI.pyd and now I see that the code has changed.

For some reason the symlink resolution is failing on the reporters system. It seems to be working find for my setup and Lewis's setups. My next step is to verify the EAs on the reporters's systems.

comment:5 by Silvan Scherrer, 7 years ago

Resolution: no change needed
Status: newclosed

As symlink is a must I doubt it's a python issue, so I close it.
If there is a proof that python alone is quilty and can't resolve symlinks feel free to reopen the ticket.

Note: See TracTickets for help on using tickets.