Closed Bug 1496172 Opened 7 years ago Closed 7 years ago

Attachments with unicode filenames cause timeout errors when retreiving attachments

Categories

(bugzilla.mozilla.org :: General, enhancement)

Production
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dylan, Assigned: dylan)

References

Details

Attachments

(3 files)

Mojo super powers time. I connected to one of the web-workers, and do this: perl bugzilla.pl get 'https://bug1495965.bmoattachments.org/attachment.cgi?id=9013900' the output below: (logging omitted) Inactivity timeout at local/lib/perl5/Mojolicious/Command/get.pm line 77. isn't very helpful yet, but I can now use the debugger or other tools to figure out why this is taking so long.
I have spot-checked files attached in 24 hours and these are fine. Also checked several past PDF files and these are also fine.
Attached file Sample PDF
And this PDF also looks good.
See Also: → 1495965
The underlying error is this: Mojo::Reactor::EV: I/O watcher failed: Wide character in subroutine entry at /app/local/lib/perl5/Mojo/IOLoop/Stream.pm line 83. which suggests the attachment data is encoded as characters and not bytes; however it seems like attachment->data is returning bytes.
Mojo::Reactor::EV: I/O watcher failed: whee at /app/local/lib/perl5/Mojo/IOLoop/Stream.pm line 86. Mojo::IOLoop::Stream::write(Mojo::IOLoop::Stream=HASH(0x9efc668), "HTTP/1.1 200 OK\x{d}\x{a}Link: </static/v20181002.3/skins/standard/fo"..., CODE(0xa0a0828)) called at /app/local/lib/perl5/Mojo/Server/Daemon.pm line 247 Mojo::Server::Daemon::_write(Mojo::Server::Daemon=HASH(0x9ec1be8), "6ad5338f90159e7441fba0ad2da0abce") called at /app/local/lib/perl5/Mojo/Server/Daemon.pm line 114 Mojo::Server::Daemon::__ANON__(Mojo::Transaction::HTTP=HASH(0xa090148)) called at /app/local/lib/perl5/Mojo/EventEmitter.pm line 15 Mojo::EventEmitter::emit(Mojo::Transaction::HTTP=HASH(0xa090148), "request") called at /app/local/lib/perl5/Mojo/Transaction/HTTP.pm line 60 Mojo::Transaction::HTTP::server_read(Mojo::Transaction::HTTP=HASH(0xa090148), "GET /attachment.cgi?id=9013900 HTTP/1.1\x{d}\x{a}User-Agent: Mojolici"...) called at /app/local/lib/perl5/Mojo/Server/Daemon.pm line 221 Mojo::Server::Daemon::_read(Mojo::Server::Daemon=HASH(0x9ec1be8), "6ad5338f90159e7441fba0ad2da0abce", "GET /attachment.cgi?id=9013900 HTTP/1.1\x{d}\x{a}User-Agent: Mojolici"...) called at /app/local/lib/perl5/Mojo/Server/Daemon.pm line 202 Mojo::Server::Daemon::__ANON__(Mojo::IOLoop::Stream=HASH(0x9efc668)) called at /app/local/lib/perl5/Mojo/EventEmitter.pm line 15 Mojo::EventEmitter::emit(Mojo::IOLoop::Stream=HASH(0x9efc668), "read", "GET /attachment.cgi?id=9013900 HTTP/1.1\x{d}\x{a}User-Agent: Mojolici"...) called at /app/local/lib/perl5/Mojo/IOLoop/Stream.pm line 102 Mojo::IOLoop::Stream::_read(Mojo::IOLoop::Stream=HASH(0x9efc668)) called at /app/local/lib/perl5/Mojo/IOLoop/Stream.pm line 48 Mojo::IOLoop::Stream::__ANON__(Mojo::Reactor::EV=HASH(0x24b2298)) called at /app/local/lib/perl5/Mojo/Reactor/Poll.pm line 143 eval {...} called at /app/local/lib/perl5/Mojo/Reactor/Poll.pm line 143 Mojo::Reactor::Poll::_try(Mojo::Reactor::EV=HASH(0x24b2298), "I/O watcher", CODE(0xa09f340), 0) called at /app/local/lib/perl5/Mojo/Reactor/EV.pm line 46 Mojo::Reactor::EV::__ANON__(EV::IO=SCALAR(0xa08ff08), 1) called at /app/local/lib/perl5/Mojo/Reactor/EV.pm line 25 eval {...} called at /app/local/lib/perl5/Mojo/Reactor/EV.pm line 25 Mojo::Reactor::EV::start(Mojo::Reactor::EV=HASH(0x24b2298)) called at /app/local/lib/perl5/Mojo/IOLoop.pm line 136 Mojo::IOLoop::start(Mojo::IOLoop=HASH(0x24b1f50)) called at /app/local/lib/perl5/Mojo/UserAgent.pm line 65 Mojo::UserAgent::start(Mojo::UserAgent=HASH(0x9eba478), Mojo::Transaction::HTTP=HASH(0x9edb580)) called at local/lib/perl5/Mojolicious/Command/get.pm line 76 Mojolicious::Command::get::run(Mojolicious::Command::get=HASH(0x9eba028), "-H", "Host: bug1495965.bmoattachments.org", "-i", 0, "/attachment.cgi?id=9013900", "-v") called at /app/local/lib/perl5/Mojolicious/Commands.pm line 54 Mojolicious::Commands::run(Mojolicious::Commands=HASH(0x9eb9f50), "get", "-H", "Host: bug1495965.bmoattachments.org", "-i", 0, "/attachment.cgi?id=9013900", "-v") called at /app/local/lib/perl5/Mojolicious.pm line 203 Mojolicious::start(Bugzilla::Quantum=HASH(0x7072c78)) called at /app/local/lib/perl5/Mojolicious/Commands.pm line 71 Mojolicious::Commands::start_app("Mojolicious::Commands", "Bugzilla::Quantum") called at bugzilla.pl line 20
Summary: Some attachments are not working → Attachments with unicode filenames cause timeout errors when retreiving attachments
Not sure if it's of any help (likely not)... but the attachments for [bug 1495965] were created using the 'Print to PDF' feature of an El Capitan Mac (i.e. without any modification of default operating system settings and/or third-party software)...
(In reply to Dylan Hardison [:dylan] (he/him) from comment #0) > For instance: > > https://bug1495965.bmoattachments.org/attachment.cgi?id=9013900 > > will timeout. O.K. to ask what change was made to the linked attachment (per the other bug report)? In contrast to the other three attachments on [bug 1495965] the file does, now, load - but attempting to edit the filename (changing the second dash) did not result in the same behavior; worth noting is that the second dash appears to be the only change made... though that particular character was used by Safari in the name chosen for the file (likely pulled from the title of the page), i.e. the only change made when using 'Print to PDF' was prepending the name with an ordinal & an ordinary dash...
The fix already merged and deployed today.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Manually changing the filenames didn't help (please note the previous question for Dylan) - but the fix did (appears to be working without issue on the original/default file names)...
Depends on: bmo-mojo
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: