Closed Bug 50420 Opened 24 years ago Closed 24 years ago

File downloaded as aim-1.1.41-1.i386.exe rather than aim-1.1.41-1.i386.rpm

Categories

(SeaMonkey :: UI Design, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED FIXED
Future

People

(Reporter: wd, Assigned: mscott)

References

()

Details

(Keywords: helpwanted, Whiteboard: [se-radar][nsbeta3-] relnote-user)

From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20000825
BuildID:    2000082508

When I went to download a file from the above URL, I noticed that the file
downloaded is test.exe , rather than the expected file.  It's not just a naming
problem, either...   test.exe is not the file with just a different filename.


Reproducible: Always
Steps to Reproduce:
1.  Go to:  http://www.freeveracity.org/download.shtml
2.  Click on one of the links to download
3.  Save onto your computer

Actual Results:  The file saved is some unknown test.exe

Expected Results:  The correct file is downloaded

This has happened to me on another site, too, but I forget which one.   If you
click on the link a second time, the correct file will download.
this is a dup of law's bugs.
Assignee: gagan → law
I can dup this problem by trying to download the file from this page:

http://rpmfind.net/linux/RPM/contrib/libc6/i386/xanim-28010-3.i386.html
*** Bug 51011 has been marked as a duplicate of this bug. ***
would this perchance be related to the problems seen in bug 48889?
Keywords: correctness, nsbeta3
OK, my original bug description was wrong.   It *is* just a naming problem.   If 
I take the downloaded file and put a .tgz extension on it, it opens in Winzip 
just fine.
Reporting comments form dupe bug 51011:

URL: http://www.mozillazine.org/
to repro:

1. go to the above URL, click on the link for the Windows build (which is a zip 
file, called mozilla-win32.zip).

2. the Downloading dialog appears (also, background downloading occurs, as seen 
in the progress meter in the statusbar, as expected). click the Save on Disk 
radiobutton (note, i did this while background downloading is occurring).

3. the native Save File dialog appears.

result: the default name in the filename field is "test.exe"

expected: the default name should be mozilla-win32.zip.
Blocks: 50326
nav triage team:
3+, P1
Priority: P3 → P1
Whiteboard: [nsbeta3+]
i was trying to download an .rpm file, and the extension was changed (but not
the filename) from rpm to exe --is this the same bug? if not, do let me know and
i'll open another bug.

steps (i'm using 2000.09.05.04 opt comm bits on linux, rh6.2):

1. go to http://www.aol.com/aim/Linuxbeta.html, and scroll down to the Download
and Install section.
2. click the "rpm" link (which points to
ftp://ftp.newaol.com/aimgen/73010/aim-1.1.41-1.i386.rpm).
3. the Downloading dialog appears, click the Save to Disk radio button then the
OK button.

result: the file picker appears with aim-1.1.41-1.i386.exe as the filename; in
the "files of type" droplist, ".exe" is selected.
I've figured out what's going on, at least to a certain level (beyond which I 
don't care to venture at this point).

There is no funky auto-encoding going on here (it's an ftp url so that wouldn't 
be applicable anyway?).

The problem is that the url is somehow acquiring a trailing '/'.  We get the 
"suggested" save-as name by calling GetFileName on the url.  Because of the 
trailing '/', the file name is empty.

It is not clear where the trailing slash comes from.  We call GetURI on the open 
(ftp) channel, then GetSpec on that URI (after QI'ing to nsIURL, I believe).  My 
theory is that the ftp protocol handler is getting confused, perhaps due to 
something quirky this particular ftp server is doing.

Anyway, the solution is to properly preserve the URL so that our extraction of 
the suggested save-as name works as intended.

I'm reassigning this (back) to Networking; removing [nsbeta3+].

P.S. Gordon has a bug with a similar symptom (a ftp url acquiring a trailing 
'/').
Assignee: law → gagan
Whiteboard: [nsbeta3+]
Sarah, that seems to be another instance of the same problem.  I noted (with my
debug code) that this url is acquiring a trailing '/' also.  I'm not sure
why/how it is still remembering the file name, though.
I noticed that this seems like maybe it is fixed in yesterday's (2000090508)
build.  I will refresh my debug build and see what's going on.
Yep.   With 2000090608, I am not seeing the behavior I originally reported here. 
  This should probably be marked as FIXED or WORKSFORME
(I'm not sure which one to use when something starts working?)
I still get this bug with 2000090708 (the latest build) under Linux. So, please
don't mark as "works" yet. I first noticed it on ibm.com, but can duplicate it
exactly as described by Liberman below.
hmm.. maybe related to rjc's recent fix for trailing slashes in FTP. 
Assignee: gagan → rjc
This seems only to happen when clicking on an link that points to the file
through ftp, when the exact same ftp url is given in the urlbar the name of the
file is correct.
Using sairuh's test with getting AIM for Linux, I still see this with a build 
from the tip.  Its not an FTP problem, I suspect its a problem with the file 
save dialog. Over to bryner as he's been working on it lately.

Brian, you can use sairuh's steps to reproduce this.
Assignee: rjc → bryner
Let's not morph bugs. If the original steps don't reproduce the defect you're
seeing, please open a fresh new bug report.  As written, this is WFM, though I
can't get to the original link.
Peter, I don't believe this bug has morphed. I couldn't get to the first link
either, so I tried sairuh's test case and COULD reproduce the problem.
Okay, I can get a '.exe' extension in the save dialog following Sairuh's steps
on Win98 and Linux (OS->ALL). That is still a far cry from 'Test.exe', but
whatever. However, as Andreas points out, this works fine when you enter the
same URL in the location bar, so I don't see how the filepicker code could be at
fault.  What code could be modifying the URL after the click, but not after the
Enter?
OS: Windows 98 → All
Priority: P1 → P3
Same results on Mac, Platform->All.  Since Mac doesn't use the same filepicker,
I'm pretty sure this is someone trying to munge the extension into something
known.  Munging the extension, especially to .exe, is particularly useless on Mac...
Hardware: PC → All
adding se-radar to status so that i can find this bug more easily. pls don't
remove it [yet], thx.
Summary: File downloaded as test.exe , rather than filename.tar.gz → File downloaded as test.exe, rather than filename.tar.gz
Whiteboard: se-radar
so if this isn't a filepicker bug, why is it assigned to me?  who should get it?
I don't know, a caller, some glue code,...?  Could you check it out?
This is *not* (I repeat) a problem with the file picker or the "save dialog" or 
anything else like that; please see my previous (detailed!) explanation.  The 
problem is inherent in the ftp channel and uri/url.

The front-end code could maybe *fix* the problem symptom, but it is not the 
cause.

BTW, the reason you don't see the problem when you type in the url is because in 
that case we extract the file name from the typed-in URL.  When you click on the 
link, we get the file name from the open ftp channel (which behaves as I 
described previously).
cc law.  Bill, perhaps you could chat with RJC about where the problem lies?
(To semi-quote law)  This is *not* (I repeat) a problem with FTP.

A few minutes of stack crawling reveals that this is a problem with the 
uriLoader, specifically in nsExternalHelperAppService.cpp where it is creating a 
temp file to download the remote FTP file contents into... it just gives the 
temp file a name where it strips off the real extension and then adds on a 
computed one (reference:  line #486 of nsExternalHelperAppService.cpp)

mscott's fingerprints are all over this file... so moving this bug over to him.
Assignee: bryner → mscott
I should probably just be glad that this isn't my bug any more...but I feel 
obliged to try to work towards the real solution.

There *is* a "problem" with FTP.  The URL in question magically acquires a 
trailing '/' which then causes all hell to break loose.  Despite additional bugs 
that might be perceived to lie elsewhere (e.g., in nsExternalHelperAppService), 
the fact that the url morphs is at the root of the symptom reported here.

If, by chance, FTP didn't screw up the URL, then all would be well.  The 
uriloader code would determine the proper extension (.gz).  It would also get 
the proper file "name" (filename.tar).  It would then properly attach the proper 
extension to the proper file name (yes, at about line 486 in 
nsExternalHelperAppService.cpp) and suggest the proper save-to file name 
(filename.tar.gz).

But no.  Instead, the FTP channel gives us a URL that is wrong: it has no "file 
name".  One consequence  is that we are forced to guess as to the extension.  
Our guess, haphazard as it might be, is ".exe".

I tried to say this before:

>The problem is that the url is somehow acquiring a trailing '/'.  We get the 
>"suggested" save-as name by calling GetFileName on the url.  Because of the 
>trailing '/', the file name is empty.

>It is not clear where the trailing slash comes from.  We call GetURI on the 
>open 
>(ftp) channel, then GetSpec on that URI (after QI'ing to nsIURL, I believe).  
>My 
>theory is that the ftp protocol handler is getting confused, perhaps due to 
>something quirky this particular ftp server is doing.

>Anyway, the solution is to properly preserve the URL so that our extraction of 
>the suggested save-as name works as intended.

I'm sorry if I failed to adequately communicate what was happening.  There is 
little question as to what code is producing "test.exe".  It ain't the FTP 
channel.  But the problem isn't that "test.exe" is being generated.  The problem 
is that "filename.tar.gz" is *not* being generated.  And *that* is the direct 
result of the attachment of the trailing '/' to the ftp channel uri/url.

Reassigning back to rjc.
Assignee: mscott → rjc
Oops.  I erred.  That should be GetFileName in the second paragraph quoted 
above (not GetSpec).  I used GetSpec in my debugging code to examine the full 
URL (thereby observing the trailing '/').
Bill, there WAS a bug regarding FTP erroneously appending slashes, but it was 
fixed over a week ago. How old is your source tree?
Assignee: rjc → law
>there WAS a bug regarding FTP erroneously appending slashes

Doh!  Then why is this bug still open?  If ftp isn't tacking on the '/' then it 
should be working.  I can't verify because the Download dialog is broken in the 
build I installed yesterday (no radio buttons).  My build is almost done and 
I'll see if it's fixed.  But it must still be broken or else you wouldn't be 
working on it.  I'm confused.

I see I worked on this early last week, while it was still broken (at least in 
my source tree).
Yep, the bug still happens. As I mentioned, as far as I see, its the URI loader
which is stripping off what it believes to be the extension, and then appends on
a new extension (in the case of the AIM Linux beta, it ends up appending
".exe").  [That's why I assigned this bug to mscott.]

I'll stop by your cube when I get in and show you a stack trace...
>Yep, the bug still happens

Depends on what you mean by "the" :-).  The *original* bug does not still 
happen, at least on (my) Windows.  But on Windows, the .rpm file does turn into 
a .exe file.

Hee hee, this is pretty funny.  The bug changed when Sarah added her comment 
here: ------- Additional Comments From S.E.V. Liberman 2000-09-06 13:37 -------

That's the *exact* same time I posted the results of my investigation into the 
original bug.  Quite the coincidence.

Subsequent discussion (as I read it now) wavered on what was actually working 
where, when but it eventually settles on what seems to be the fact that ".exe" 
is added/replaced to the file name for certain files, not that "filename.tar.gz" 
comes up as "test.exe".

As to the current remaining bug: I think this is due to the way we synthesize 
the file name based on combination of extension and mime-type.  I don't know 
exactly how it works, but it seems as if the extension and the mime-type don't 
"match" properly (e.g., ".rpm" vs. "application/octet-stream") then we try to 
impose the extension we *think* goes with the mime type.

This will vary from platform to platform, depending on what "helper apps" are 
registered.  I suspect that we should never, ever add an extension on any 
platform other than Windows (because it will be ignored anyway).

And I'm not even sure about Windows because that'll lead to weird things like 
turning .rpm into .exe.  On the other hand, the way we launch helper apps on 
Windows requires that we append the "right" extension.  So maybe we should only 
do that if we're going to launch the helper app, and not if saving to disk.

Sigh.  I'm going to have to update my tracking bug 50326, I guess.  And reassign 
this to mscott :-).  I *knew* I should have just let this slide.

Oh.  We should have listened to Peter when he tried to get us to open a new bug: 
>Let's not morph bugs. If the original steps don't reproduce the defect you're
>seeing, please open a fresh new bug report.  As written, this is WFM, though I
>can't get to the original link.

To which Robert replies:
>Peter, I don't believe this bug has morphed. I couldn't get to the first link
>either, so I tried sairuh's test case and COULD reproduce the problem.

Which I should have interpreted as "Yes, the bug has morphed, but we're going to 
keep talking about "the problem" when we're really talking about this *other* 
problem."

Maybe it's just because I'm going nuts, but I think I've got good reason for 
going nuts.
Assignee: law → mscott
Whatever.  :)

Thanks for bumping this back over to mscott where the bug belongs.
So, is the summary correct as it stands today?  It seems like this bug has
morphed to be about .rpm -> .exe rather than .tar.gz -> .exe.  Has the erroneous
appended slash been eliminated yet?
Whiteboard: se-radar → [se-radar][b3 need info]
Yes, the bug cause and symptom has changed over time.

I've changed the summary.  Please see Sarah's report on 09/06 for the problem 
that still needs attention.

The erroneous trailing '/' no longer appears on ftp urls.
Summary: File downloaded as test.exe, rather than filename.tar.gz → File downloaded as aim-1.1.41-1.i386.rpm rather than aim-1.1.41-1.i386.exe
Summary: File downloaded as aim-1.1.41-1.i386.rpm rather than aim-1.1.41-1.i386.exe → File downloaded as aim-1.1.41-1.i386.exe rather than aim-1.1.41-1.i386.rpm
So, the workaround is to just type in the extension you really want and save the
file isn't it?  Marking nsbeta3- based on that workaround.
Whiteboard: [se-radar][b3 need info] → [se-radar][nsbeta3-]
Target Milestone: --- → Future
*sigh* adding relnote3 and helpwanted.
Keywords: helpwanted, relnote3
*** Bug 48889 has been marked as a duplicate of this bug. ***
spam
Whiteboard: [se-radar][nsbeta3-] → [se-radar][nsbeta3-] relnote-user
this looks like it has been working. I have been downloading lots of good stuff
on linux build November 3.

Download any rpm from rpmfind.net to make sure.
yeah, this works now for me using linux 2000.11.21.08 trunk bits. mscott, was
there a checkin that helped this, or shall it just be marked wfm? thx!
Yes I checked something in so we no longer used the temp file name for the
suggested file name (that's where the impedence mismatch was happening with file
extensions). 
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
verified
Status: RESOLVED → VERIFIED
RELNOTE Patrol:
-> xpapps 
Do we remove relnote after a bug is fixed an no longer in relnote? Might be the 
case with this bug.
Component: Networking → XP Apps
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.