Adobe hates networking



  • A few years back I was involved with writing a DAM system. Basically the users would save a file to a remote share, this share was actually a thin FUSE implementation that would rip out the metadata from the .psd files, and then save those to a SQL DB, so users could quickly find documents based on partial string matches, link them to physical products in the inventory tracker, etc. After a fairly short development cycle we were ready for a beta deploy. We installed the software, re-routed the shares, and saved a file from Adobe:


    "Data error on save"

    Hrm...that's odd, so I copied the file by hand to the share. It worked fine. I save the file with a different program, no problems. After some time I decided it had to be a issue with Photoshop. So I called Adobe tech support to see if they could offer some tips. The conversation went something like this:

    "So we're trying to save the file to a remote share, and I'm getting a data error on save message...any ideas?"

    "By remote share, are you saying you're saving to a network drive?"

    "Yes"

    "Um sir, that's a unsupported operation...."

    "Wait...what? This is the 21st century....you're saying your software can't save to a network drive? How am I supposed to transfer files to a different machine?"

    "I suggest you have your users save to their desktop and then copy the file by hand..."

    "But what on earth could be causing this sort of issue, every other program I use writes to a network file just fine!"


    "Well sir, this is fairly complicated software...."

    "Are there any plans to support this in future releases?"

    "Not that I know of..."






    That was with Photoshop CS3....last I checked the same policy applied....saving to a network share is "unsupported".



  • My company uses adobe programs on about 50 Macs; and all of our files are located and worked on from a Mac file server.

    We had tons of problems with network operations, of varying kinds not long ago (still do, but not as bad).  Adobe's comment to us is that they do not support working off of a file located on a network share.

    However, they would have supported us if we purchased and used their proprietary platform call Version Cue.

    Version Cue was discontinued after CS4 - so, I'm thinking that this whole official stance on Adobe's part for not supporting network shares was really just some kind of gimmick to get users to transfer to their proprietary platform, imo.



  • I just tried it with Photoshop CS5 and I was able to save to a network drive without any problem, so apparently Adobe did finally fix it.  However, CS3 isn't that old (Aprill  2007 according to Wikipedia*) so it's still a pretty big WTF.  Actually, not being able to save to a network drive is a huge WTF for any program written in the last 20 years.

     

     

    * According to Wikipedia, the first version of Photoshop to be commercially distributed was version 0.87 for Mac, distributed under the name "BarneyScan XP" by scanner company BarneyScan in 1989.



  • @El_Heffe said:

    so apparently Adobe did finally fix it
     

    It works sometimes. Sometimes it deletes the PSD and then it can load the assets from it so you end up with a file you can't save anywhere! This is still true on CS5.5.



  • Doesn't it take extra work to write a program that can't save to a network drive?

    Is the problem just with UNC paths, or does it still fail if you map it to a drive letter and use that?



  • @Scarlet Manuka said:

    Is the problem just with UNC paths, or does it still fail if you map it to a drive letter and use that?
     

    It happens on the Mac too, which should appear to applications as /Volumes/sharename/pathname/filename.whatever.

     



  • @Zemm said:

    It happens on the Mac too, which should appear to applications as /Volumes/sharename/pathname/filename.whatever.

    Bizarre. So, anyone care to speculate on what they might be doing? Obviously there's some sort of micromanagement going on instead of just telling the OS "I want a file in this location, here is the filename, now here is the data, please take care of that for me." Could it be a latency issue? For example, maybe trying to open a file handle and complaining if you don't get it within a certain amount of time? I can see that being the kind of thing they might do as a workaround (say if they had some issue where writing a file would hang), and if they put in a number that was generally adequate for a local disk but not necessarily for a network share it could explain the intermittent failures. It'd be interesting to see if the problem happens more often on slow or congested networks, and if you could get it to happen on a local disk by thrashing it.

    Anyone else want to throw a scenario into the ring?



  • @Scarlet Manuka said:

    Anyone else want to throw a scenario into the ring?

    File locking comes to mind.



  • I think y'all need to define "network share/drive" for this discussion.

    To be more specific: I've never had any trouble, on Windows, saving to a folder on a mapped drive from another Windows machine, using any OS from Windows XP Pro up to 7, and Photoshop 5.5 up to CS3, sometimes over VPN when I was working from home.

    In other words, Photoshop has never had problems saving to those kinds of network shares, and I don't really know what sort of network share situation you guys are in that makes it fail.



  •  At work here it seems to be more a problem for the Mac's than the Windows-based PCs. Usually the designers just work on files locally and transfer stuff to the network drive at various stages. It could be some sort of file locking, as the kinds of problems when they want to work directly on a network share (a Samba/SMB share on a Windows server) they sometimes get issues saving the file after some edits, and have to create a new file with a different name.

    This is just one of many Adobe WTFs.



  • I actually kind of understand it. They probably implement all sorts of gimmicks so file operations go reasonably fast. It's not like they're getting a 2MB word document, they must be able to save to .PSD files of several hunderd megs without much delay
    Still it's kind of weird not supporting network locations, you'd at least expect some sort of fallback to the basic OS functions.



  • @dhromed said:

    I think y'all need to define "network share/drive" for this discussion.

    There's at least three orthogonal properties that may affect the operation:

    • How the share is addressed. Some programs don't understand UNC paths, as you mentioned. This generally doesn't affect Unix-based systems.
    • What protocol is used. If the program wants a feature not supported by the protocol (such as unix-type file permissions over SMB), it won't work.
    • What filesystem is in use on the server. The set of possible operations is the intersection of those supported by the protocol and filesystem. The OP mentioned some FUSE thing, which very well might not support locking, or a bunch of other things.



  • @tdb said:

    * How the share is addressed. Some programs don't understand UNC paths, as you mentioned. This generally doesn't affect Unix-based systems.

    That one MIGHT matter, but is also an obvious bug that should have been fixed years ago.

    @tdb said:

    * What protocol is used. If the program wants a feature not supported by the protocol (such as unix-type file permissions over SMB), it won't work.

    * What filesystem is in use on the server. The set of possible operations is the intersection of those supported by the protocol and filesystem. The OP mentioned some FUSE thing, which very well might not support locking, or a bunch of other things.

    These two do not matter. If Adobe's products are being disrupted by these, they are operating at the wrong level of abstraction.

    As dtech says, they might intentionally operate at the wrong level of abstraction to gain some kind of speed boost, but if they're doing that without any ability to fall-back to the correct level of abstraction, then that again is an obvious bug that should have been fixed years ago.

    What's more disturbing is that this issue reveals Adobe doesn't eat their own dogfood at all. I mean, how are people working at Adobe saving their files? They don't have a network file server? Everybody in the company just saves to the local drive and copies it manually later, and nobody in years has thought to put in a bug report about that? At least with products like Outlook and Active Directory, you can be damned sure Microsoft actually uses them. Adobe doesn't seem to be using their own products here.



  • @blakeyrat said:

    @tdb said:
    * How the share is addressed. Some programs don't understand UNC paths, as you mentioned. This generally doesn't affect Unix-based systems.

    That one MIGHT matter, but is also an obvious bug that should have been fixed years ago.

    @tdb said:

    * What protocol is used. If the program wants a feature not supported by the protocol (such as unix-type file permissions over SMB), it won't work.

    * What filesystem is in use on the server. The set of possible operations is the intersection of those supported by the protocol and filesystem. The OP mentioned some FUSE thing, which very well might not support locking, or a bunch of other things.

    These two do not matter. If Adobe's products are being disrupted by these, they are operating at the wrong level of abstraction.

    None of them should matter, at least for Photoshop, but in practice there's a lot of shitty software that assumes things. (As a side note, there are other cases where file locks are a valid requirement.)

    @blakeyrat said:

    What's more disturbing is that this issue reveals Adobe doesn't eat their own dogfood at all. I mean, how are people working at Adobe saving their files? They don't have a network file server? Everybody in the company just saves to the local drive and copies it manually later, and nobody in years has thought to put in a bug report about that? At least with products like Outlook and Active Directory, you can be damned sure Microsoft actually uses them. Adobe doesn't seem to be using their own products here.

    I dunno if Adobe has any people who do graphics as their job. Programmers are probably using some form of version control, which communicates with the server using its own protocol.



  • @tdb said:

    How the share is addressed. Some programs don't understand UNC paths, as you mentioned. This generally doesn't affect Unix-based systems.

    One of my old Flash projects would not work over UNC path. I think it received file://///servername/sharename/etc or something - one too many slashes for what it expected. Mapping the drive fixed the problem so that was one of its checks before it would start up - flash an error message if it detected that. Probably a big WTF somewhere but that was way back when Flash 9 was new and I was learning AS3.

    I wonder if this is related to the other Adobe WTF on the board at the moment: Flash UI causing issues with saving!



  • Network hating isn't confined to Photoshop. Adobe Reader X has a "protected mode", turned on by default, which apparently stops naughty PDFs doing all the things that they can do normally because of the way the format is defined.

    Cool. Great. Don't need to worry about users opening malicious PDFs that might sneak past email filters, web filters, AV or the common sense some of them may possess.

    Except if a user tries to open a file that lives on a DFS share (which is something we use a lot), there's a slight problem. They can't. Naturally, Adobe provide a helpful message explaining that because of fnargh[1], opening files from DFS shares is not supported. Or not. No, what the user gets is a helpful "Access Denied" message, which led to someone[2] spending far too long checking permissions, group memberships, turning it off and on again, weeping, wailing[3] and generally having a bad day.

    The solution is to disable the helpful enhanced security. Or to use a less annoying PDF reader...

    [1] Or some other random reason
    [2] Not me, fortunately
    [3] Gnashing of teeth optional



  • @tdb said:

    I dunno if Adobe has any people who do graphics as their job. Programmers are probably using some form of version control, which communicates with the server using its own protocol.

    Adobe has a large design team and marketing team. They're the people who come up with tutorials, promo videos, promo materials, and all the additional content like swatches, styles and presets.


  • ♿ (Parody)

    Are they mapping the files into memory? That can cause problems if two processes do that at once over a network connection:

    @MSDN CreateFilemapping said:


    With one important exception, file views derived from a single file-mapping object are coherent, or identical, at a specified time. If multiple processes have handles of the same file-mapping object, they see a coherent view of the data when they map a view of the file.

    The exception has to do with remote files. Although this function works with remote files, it does not keep them coherent. For example, if two computers both map a file as writable, and both change the same page, each computer sees only its own view as it writes to the page. When the data is updated on the disk, it is not merged.



  • @boomzilla said:

    For example, if two computers both map a file as writable, and both change the same page, each computer sees only its own view as it writes to the page. When the data is updated on the disk, it is not merged.

    I don't think this applies here. The coherency is only lost when the file is mapped at TWO different remote hosts.

    I think the problem might be that the program wants to use non-cached IO. For that, it needs to know the required alignment for the target volume. Usually it's the block size. Getting the block size from an SMB share may not always be supported, or may require a different API call.



  • So what??? Do the IO locally on a temp file and save it over the network when the user mashes Ctrl+S!! Isn't that what every program does?

    Wouldn't you want to be doing that even if the file wasn't over the network? Why would you be doing memory-mapped writes to your save file unless you're saving it? Otherwise you could get file corruption from a crash or power outage or whatever.

    These excuses make no sense at all!


  • ♿ (Parody)

    @Xyro said:

    So what??? Do the IO locally on a temp file and save it over the network when the user mashes Ctrl+S!! Isn't that what every program does?

    Wouldn't you want to be doing that even if the file wasn't over the network? Why would you be doing memory-mapped writes to your save file unless you're saving it? Otherwise you could get file corruption from a crash or power outage or whatever.

    These excuses make no sense at all!

    Well, firstly, I don't think anyone is trying to excuse Adobe. We're just trying to dissect the WTF. I imagine local saves would be the obvious solution.

    It's not clear to me (as someone who's never used Photoshop) what exactly happens. Does it sometimes save to the same network drive and sometimes have an error? I imagine that they could be trying to detect somehow that the drive isn't local, and throwing an error if they notice. If they don't then maybe they just go ahead blindly, coming up with the occasional error?



  • @alegr said:

    I think the problem might be that the program wants to use non-cached IO. For that, it needs to know the required alignment for the target volume. Usually it's the block size.
     

    Wait, what?  There are still situations* where applications need to know low-level storage formatting information like block sizes?

     

    *Assuming this isn't an embedded system, of course. *wink*



  • @Scarlet Manuka said:

    Bizarre

    I gave a co(w)orker the link to this thread and now he can't save directly to the server from Photoshop (CS5.5) at all any more. Previously it was only "sometimes" now it's all the time. Saving locally then copying works fine. My CS5 rarely stuffs up but then I don't do a lot of saving of PSDs (I mostly just open them, turn on/off some layers, crop or trim and export for web into JPEG or PNG). We both use Macs.



  • @Zemm said:

    I gave a co(w)orker the link to this thread and now he can't save directly to the server from Photoshop (CS5.5) at all any more.

    Oh! So it's this thread that causes the problem!

    Well, know that we know the cause, it should be easy for Adobe to fix.



  • @blakeyrat said:

    @Zemm said:
    I gave a co(w)orker the link to this thread and now he can't save directly to the server from Photoshop (CS5.5) at all any more.
    Oh! So it's this thread that causes the problem!

    Well, know that we know the cause, it should be easy for Adobe to fix.

    Correlation does not imply causation.


  • @Sutherlands said:

    @blakeyrat said:

    @Zemm said:
    I gave a co(w)orker the link to this thread and now he can't save directly to the server from Photoshop (CS5.5) at all any more.
    Oh! So it's this thread that causes the problem!

    Well, know that we know the cause, it should be easy for Adobe to fix.

    Correlation does not imply causation.

     http://catb.org/jargon/html/S/schroedinbug.html

    That is all


Log in to reply