andk / pause

Perl authors upload server
http://pause.perl.org/
150 stars 58 forks source link

handle overly long distribution names before the database rejects them #482

Open rjbs opened 5 months ago

rjbs commented 5 months ago

Someone uploaded this file:

CGI-Enurl-1.08-withoutworldwriteables-generated-by-the-silly-pseudosecurity-measure-devised-to-piss-off-nonunixers.tar.gz

I guess they wanted to annoy the PAUSE maintainers, and only 15 years later, it paid off because the database is now complaining that the full path is too long to fit in the 128 character database table.

We should detect this in mldistwatch, in PAUSE::dist->mtime_ok, before sending it to the database.

rspier commented 5 months ago

What do we do with that one bad file?

Ideas: a) Delete it. b) Rename it to something shorter. (Say, remove "pseudosecurity".) c) Make the database row 4 bytes longer to accommodate it.

a) is tempting. b) is easy. c) is easy, but probably the wrong solution.

This is important to fix because it's causing mldistwatch to trigger an email on every run.

@andk Any thoughts?

rjbs commented 5 months ago

You didn't ask me, but I think we should delete it. It's quite old and has never been successfully indexed.

neilb commented 5 months ago

Also wasn't asked, but given (a) the author (JENDA) released this in 2009, and (b) hasn't released anything since 2014, I think it's fine to be pragmatic and just delete it.

Furthermore, he released CGI-Enurl-1.08.tar.gz and CGI-Enurl-1.08-withoutworldwriteables-generated-by-the-silly-pseudosecurity-measure-devised-to-piss-off-nonunixers.tar.gz on the same day, and they have exactly the same content. But even the regular 1.08 release wasn't indexed – it's still 1.07 in the index.

rspier commented 5 months ago

As an experiment, I have moved the file from authors/id/J/JE/JENDA to /data/pause/attic. (We should delete it or move it back before closing this issue.)

This appears to have eliminated the

DBD::mysql::db do failed: Data too long for column 'dist' at row 1

log as expected.

rjbs commented 5 months ago

If you end up moving it back, you'll want to restore the mtime, which mldistwatch cares about.