GNOME Bugzilla – Bug 43949
Dialog falsely says "couldn't display page" when following help link
Last modified: 2004-12-22 21:47:04 UTC
To reproduce: (1) Launch Nautilus (2) Type "help:nautilus" in location bar and hit Enter key (3) Wait for page to appear. Beware intermittent bug 43948. If it occurs, you have to start over to reproduce this bug. (4) Scroll down until you find the first link (to "Chapter One") (5) Click on this link The content view correctly upgrades to show the page you clicked on. However, you get a dialog box that says "Couldn't display <new location>". Ali reported this to me in email and I started looking into it. I couldn't figure out the whole thing, so I'm writing a bug report to put down what I've learned. Someone else needs to take it from here. Here's what I learned: The error code is coming from get_stat_info in file-method.c. The code looks like this: if (S_ISLNK (statptr->st_mode)) { file_info->type = GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK; file_info->symlink_name = read_link (full_name); if (file_info->symlink_name == NULL) { return gnome_vfs_result_from_errno (); } file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME; } the file_info->symlink_name == NULL check is firing, so this returns gnome_vfs_result_from_errno. That says errno == ENOTDIR, and thus gnome_vfs_result_from_errno_code returns GNOME_VFS_ERROR_NOT_A_DIRECTORY up to the top level, which puts up the dialog box. To be debugged: why is this code executing and returning an error when the high-level operation seems to be succeeding? I could look into this more later when I finish other tasks, but I don't know anything about this code path. ------- Additional Comments From darin@bentspoon.com 2000-10-23 15:28:40 ---- From what John says here, we have what looks to stat like a symbolic link, but calling read_link returns the error ENOTDIR. It sounds like full_path has an incorrect value. ------- Additional Comments From sullivan@eazel.com 2000-10-23 15:36:25 ---- I'll look into this further now. ------- Additional Comments From sullivan@eazel.com 2000-10-23 16:14:12 ---- The value in full_name is "/gnome/share/gnome/help/nautilus/C/index.html/Ch01-1.html". This is the right path for the html file. But it is not a symlink, so something funny is going on. ------- Additional Comments From sullivan@eazel.com 2000-10-23 16:26:58 ---- This is not the right path for the HTML file! Note the two ".html"s near the end. Somewhere in the help code path it's generating this bogus URL. I will keep trying to track it down (unfortunately the stack crawl doesn't help because it's an async job). ------- Additional Comments From sullivan@eazel.com 2000-10-23 17:37:33 ---- OK, Darin and I have pursued this bug to the offending routine. Clicking on the "Chapter One" link ends up calling make_full_uri_from_partial in nautilus-mozilla-content-view.c. This ends up constructing the malformed URI mentioned in my earlier comments. This routine needs a talking to. ------- Additional Comments From sullivan@eazel.com 2000-10-23 17:55:49 ---- I'm not comfortable making this change myself, because I don't know what assumptions mfleming was making when he wrote this machine. Why assume base_uri is a directory? That's what the code assumes now. ------- Additional Comments From mikef@praxis.etla.net 2000-10-25 10:31:43 ---- *** Bug 43819 has been marked as a duplicate of this bug. *** ------- Additional Comments From mikef@praxis.etla.net 2000-10-25 16:44:09 ---- Fixed. The relative URI handling still isn't totally RFC compliant. ------- Additional Comments From sodorp@hotmail.com 2000-11-03 23:18:07 ---- Verified, could not reproduce bug as described and saw no sign of related URI handling bugs. ------- Bug moved to this database by unknown@bugzilla.gnome.org 2001-09-09 20:46 -------