Opened 12 months ago

Closed 4 months ago

#1800 closed defect (fixed)

chicken-install fails installing eggs when encountering truncated/empty .egg-info files

Reported by: Vasilij Schneidermann Owned by:
Priority: major Milestone: someday
Component: core tools Version: 5.3.0
Keywords: chicken-install Cc:
Estimated difficulty: medium


When installing eggs with {{chicken-install}}, it checks for already installed files by walking over all installed .egg-info files with {{matching-installed-files}} and {{load-egg-info}}. If one of these .egg-info files cannot be {{read}}, the whole installation process aborts. A similar phenomenon applies to {{chicken-uninstall}} with {{remove-extension}} and {{load-egg-info}}. The user must therefore manually delete all affected egg files to have a working set of eggs again.

Two proposals:

  • Considering that the {{egg-info}} files are some sort of database, there should be a consistency check to ensure their integrity when installing/removing eggs.
  • If installing/removing eggs comes across a malformed {{egg-info}} file, it should display a warning and skip processing it. Maybe even suggest a manual uninstallation.

As for why these truncations happen, no idea. I've observed one such case with egg installation of srfi-27 and math on Windows, presumably due to maximum command length limits.

Attachments (1)

0001-Split-up-potentially-long-echo-invocation-on-win32.patch (1.1 KB) - added by Vasilij Schneidermann 5 months ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 6 months ago by Vasilij Schneidermann

I've finally stumbled upon a documented limitation of 8191 characters in cmd.exe:

The maximum length of any command line (or variable) within CMD is 8191 characters.

The maximum length of the string that you can use at the command prompt is 8191 characters.

comment:2 Changed 6 months ago by Vasilij Schneidermann

Estimated difficulty: easymedium

Changed 5 months ago by Vasilij Schneidermann

comment:3 Changed 4 months ago by felix winkelmann

Resolution: fixed
Status: newclosed

Fixed in commit a08f8f548d772ef410c672ba33a27108d8d434f3

Note: See TracTickets for help on using tickets.