brackets-archive / bracketsIssues

Archive of issues in brackets.
0 stars 0 forks source link

Brackets fails to watch project root on a mapped network drive. #12870

Open core-ai-bot opened 3 years ago

core-ai-bot commented 3 years ago

Issue by petetnt Friday Oct 10, 2014 at 06:24 GMT Originally opened as https://github.com/adobe/brackets/issues/9515


Steps to reproduce:

  1. Create any file
  2. Delete the said file
  3. File gets deleted (and the file closes in the work area/editor) but stays in the project explorer. Clicking the file results in the usual "Error Opening File) dialog.

image

Windows 8.1, Brackets 0.44.0-14876

core-ai-bot commented 3 years ago

Comment by JeffryBooher Friday Oct 10, 2014 at 07:13 GMT


@petetnt how are you deleting the file? Windows Explorer, Command Line or From the Project Tree? Do you see any messages in the console about Directory Watching going offline? Did you open a second brackets window (not a second app instance)? is drive T: a network drive? What kind of network is it? Is it a subst drive or NTFS Junction Point? Does this happen with version 0.43 as well?

core-ai-bot commented 3 years ago

Comment by petetnt Friday Oct 10, 2014 at 07:26 GMT


Oh yeah, I am deleting it from the project tree with right click -> Delete. T: is a folder on a NTFS network drive, like //path/to/network/folder, mapped to T:. Actually you are correct, the program is now throwing errors about failing to watch the project root. This now happens with all projects when they are mapped to a certain letter.

'Failed to watch root: T:/dev/ Unknown : 'filesystem/FileSystem.js:869'

When opening the project via //path/to/network/folder, everything works as intended. Fairly sure this didn't happen with 0.43 because I started running into this issue after updating to 0.44 and I have been using Brackets for a relatively long time with similar paths.

I'll double check by reinstalling 0.43, might take a while because of erm... permissions here at work.

edit: changed the topic description to match.

core-ai-bot commented 3 years ago

Comment by dangoor Monday Oct 27, 2014 at 18:38 GMT


@JeffryBooher is going to do an initial investigation here.

core-ai-bot commented 3 years ago

Comment by petetnt Tuesday Dec 23, 2014 at 14:07 GMT


Sorry for getting back to this so late but the issue persists on Brackets 1.1. (and the latest source) and today I finally had the time to actually hack this but didn't get very far: following the error just lead me to this brackets-shell function:

After getting to this line: https://github.com/adobe/brackets/blob/master/src/filesystem/FileSystem.js#L278

                this._enqueueWatchRequest(function (requestCb) {
                    impl[commandName].call(impl, entry.fullPath, requestCb);
                }.bind(this), callback);

Bracket calls impl[commandName] where commandName is watchPath which is

function watchPath(path, callback) {
        if (_isRunningOnWindowsXP) {
            callback(FileSystemError.NOT_SUPPORTED);
            return;
        }
        appshell.fs.isNetworkDrive(path, function (err, isNetworkDrive) {
            if (err || isNetworkDrive) {
                callback(FileSystemError.UNKNOWN);
                return;
            }

            _nodeDomain.exec("watchPath", path)
                .then(callback, callback);
        });
    }

Where isNetworkDrive seems to be this: https://github.com/adobe/brackets-shell/blob/9e5d9f22664f3af1013a213381e2b4307bd7ae78/appshell/appshell_extensions_win.cpp#L584

int32 IsNetworkDrive(ExtensionString path, bool& isRemote)
{
    if (path.length() == 0) {
        return ERR_INVALID_PARAMS;
    }

    DWORD dwAttr;
    dwAttr = GetFileAttributes(path.c_str());
    if (INVALID_FILE_ATTRIBUTES == dwAttr)
        return ConvertWinErrorCode(GetLastError());

    ExtensionString drive = path.substr(0, path.find('/') + 1);
    isRemote = GetDriveType(drive.c_str()) == DRIVE_REMOTE;

    return NO_ERROR;
}

Which leads back to the main issue: brackets (shell?) doesn't recognize that the drive is actually an mapped network drive. However, I have little to no experience hacking native code so I am unsure where I should continue from here. Any ideas?

core-ai-bot commented 3 years ago

Comment by petetnt Thursday Apr 23, 2015 at 12:13 GMT


On Release 1.4 development build 1.4.0-0 (master 9264e29c0), the error is now correctly named as NetworkDriveNotSupported instead of Unknown

core-ai-bot commented 3 years ago

Comment by cstillm Wednesday Sep 23, 2015 at 21:45 GMT


I'm also hitting this issue with newer versions (1.4 non extract). I'm able access files but the performance has taken a huge hit in responsiveness for the app since new versions.

Error watching project root: Z:/something/somthing/rails-root/ NetworkDriveNotSupported

core-ai-bot commented 3 years ago

Comment by abose Thursday Sep 24, 2015 at 05:28 GMT


This might be due to indexing for the new instant search feature. You could disable this by setting "findInFiles.nodeSearch": false in the preferences file.

core-ai-bot commented 3 years ago

Comment by cstillm Thursday Sep 24, 2015 at 18:40 GMT


Excellent, this preference change seems to have resolved my issue!