What am I seeing here?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Marjolein Katsma
    Expert
    • Oct 2007
    • 98

    What am I seeing here?

    I'm seeing something odd, but I don't know what it is, exactly, let alone why.

    Within a Folder compare between my local "Upload" directory and a remote (standard FTP) folder I noticed this error message flashing by repeated so I went to have a look:
    "2007-10-24 20:03:46 Unable to load phpxref: Invalid ACharPos".

    Cirrus clearly marks the folder named 'phpxref' but I don't know why. So I fire up the "SSH Secure Shell client and have a look with that: there seem to be two directories, one named 'phpxref' and the other 'phpxref?' (the server is running FreeBSD). (Screenshot 1 - hsnap529)

    Except the former seems to contain a directory called '?' and the latter doesn't seem to exist. (Screenshot 2 - hsnap532)

    So, to have another look, I fire up LeapFTP and have a look with that - and it sees nothing wrong... (Screenshots 3 & 4 - hsnap535/6).

    It does look like something's the matter, but what is it, and why is Cirrus complaining about it (with reason, it seems), but not LeapFTP?
    Last edited by Marjolein Katsma; 25-Oct-2007, 01:28 AM. Reason: correct screenshots for LeapFTP
  • Zoë
    Team Scooter
    • Oct 2007
    • 2666

    #2
    Are you accessing the server using SSL or is it unsecured? If it's unsecured, can you try logging in using the command line ftp.exe and see if the directory listing that way matches what's returned using SSH?

    The "Invalid ACharPos" error is returned by our directory listing parser. It's can also be triggered in the current release on SFTP connections if a directory has a symlink in it. I had our list parser handle a copy of the lines shown in your screenshot and it didn't have any trouble with it. Can you email us text copies of the FTP log and the directory listings as returned from either FTP or SSH?

    Thanks,
    Craig
    Zoë P Scooter Software

    Comment

    • Marjolein Katsma
      Expert
      • Oct 2007
      • 98

      #3
      Craig,

      Mail is on its way.

      Comment

      • Zoë
        Team Scooter
        • Oct 2007
        • 2666

        #4
        Well, there's definitely something wrong with your server, though I can't say exactly what.

        From the listings you sent, Cirrus isn't seeing the '?' character at all, so for the top folder it just sees two files both named 'phpxref'. Part of our design is that filenames are unique (depending on case sensitivity), so it just creates one item and updates it twice.

        For the actual phpxref subdirectory, since it's again not seeing the '?' character it gets a single list item that doesn't have a name included, and that's why it's giving the parse error.

        I've fixed our code so it will log the string "Error parsing directory listing" in this case instead of the more specific error. It will still show overlay the directory with the load error icon and won't consider it loaded.

        LeapFTP probably just ignores lines in the listing that it can't parse, so it considers this an empty directory. BC2 had the same design, so I believe it would do the same thing.
        Zoë P Scooter Software

        Comment

        • Marjolein Katsma
          Expert
          • Oct 2007
          • 98

          #5
          Craig,

          Thanks for the explanation. A more "friendly" error message is certainly good. I wish I could think of a way to find out what exactly is wrong with that directory on the server, or what that '?' is (it's not actually a question mark; I think it must be a non-ASCII character, but unlike SSH (I think) the FTP programs go into ASCII mode to retrieve a listing so that would explain they'e not seeing the extra character) but I'm no real *nix wiz. I'll leave it sitting there for now since it's causing no problem.

          If you'd like a log from BC2 for the same situation, let me know.

          Comment

          • Marjolein Katsma
            Expert
            • Oct 2007
            • 98

            #6
            Hmm, maybe it is a question mark after all? Whatever, I just tried something else: Tunnelier.

            I find that with Tunnelier SFTP I also see two directories (but no question mark), but I can navigate into each of them - and I can do the same in the SSH xterm as well. Now it gets interesting:
            • The directory 'phpxref' contains a subdirectory called '?' which contains a number of files
            • The directory 'phpxref?' does not contain a subdirectory but directly contains the same files the '?' subdirectory in 'phpxref' has

            At no point does the SFTP show the '?' (not in the log either) but it seems it knows "something is there"; SSH does show the '?'; I can't use a Unicode-capable font in the terminal window, so I tried copying it into a blank UTF-8 window in UltraEdit, but I still see a question mark (not conclusive, but the fact I could cd into directories here using an actual question mark suggests it probably really is one).

            I have logs and screenshots, if you're interested, Craig!

            Comment

            • Zoë
              Team Scooter
              • Oct 2007
              • 2666

              #7
              Have you tried using Cirrus through SFTP instead of FTPS or Tunnelier?

              Recent versions of SFTP use UTF-8, and even the old versions use a binary list format instead of a text one, so Cirrus should see the filenames exactly like they appear on disk in that case. You might try saving the log to a text file and then check it with a hex editor. There are quite a few UTF-8 characters that aren't visible when printed, and it's probably one of those. Converting from UTF-8 to ANSI would definitely convert those characters to '?'.
              Zoë P Scooter Software

              Comment

              • Marjolein Katsma
                Expert
                • Oct 2007
                • 98

                #8
                Originally posted by Craig
                Have you tried using Cirrus through SFTP instead of FTPS or Tunnelier?
                No - at least not yet! The funny thing is with the "new" server I'm moving to I need to be very security-conscious so I'm using exclusively SSH and SFTP (or "bridged" SFTP through when I use a program that doesn't directly support SFTP), while on the "old" server I've been using SSH for command-line access, and pain old FTP for file transport - but it never got much attention from hackers. I didn't have good tools for SFTP anyway, until I started searching again when setting up my new hosting account.

                So, it took a little "rethinking" to try one of the new tools on the old server. (So far I was just copying an old session from BC2 to Cirrus when I felt a need for it.) I'll try SFTP with Cirrus next. What I find interesting is that all approaches/tools so far have shown slightly different behavior and results. That old failed experiment is an interesting test case now!

                (And I think maybe I have too many tools right now, though I like a well-filled toolbox!)

                Originally posted by Craig
                Recent versions of SFTP use UTF-8, and even the old versions use a binary list format instead of a text one, so Cirrus should see the filenames exactly like they appear on disk in that case. You might try saving the log to a text file and then check it with a hex editor. There are quite a few UTF-8 characters that aren't visible when printed, and it's probably one of those. Converting from UTF-8 to ANSI would definitely convert those characters to '?'.
                Yes, indeed. And it would be interesting to try (tomorrow... with the brand-new build )

                Comment

                Working...