HelloZeroNet / HelloZeroNet/ZeroNet

FileDelete: No such file or directory

Ouverte
#1,140 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
JavaScript
Étoiles
18.8k
Forks
2.3k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Having a small problem with fileDelete. File is deleted in filesystem but fileDelete cmd returns No such file or directory. Below console.log and UI server log. Running rev3098

console.log:

fileWrite:
18:47:33.214 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message add_optional_files_support callback 4:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileWrite started (65). 1 pending ZeroNet API operation (65)
18:47:33.218 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message add_optional_files_support callback 4:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileWrite finished. res = "OK". elapsed time 4 ms (65). No pending ZeroNet API operations

siteSign:
18:47:33.219 MoneyNetworkAPI.js:1456 MoneyNetworkAPI.send_message.save_offline_transaction callback 6:
sign content.json with new optional file merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477
18:47:33.219 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.save_offline_transaction callback 6:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/content.json siteSign started (66). 1 pending ZeroNet API operation (66)
18:47:33.266 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.save_offline_transaction callback 6:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/content.json siteSign finished. res = "OK". elapsed time 47 ms (66). No pending ZeroNet API operations

submit cleanup job:
18:47:33.267 MoneyNetworkAPI.js:1456 MoneyNetworkAPI.send_message siteSign callback 7:
Submit delete_request job for merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477. starts delete_request job in 9667 milliseconds

fileGet - file is on file system
18:47:42.935 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.delete_request callback:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileGet started (67). 1 pending ZeroNet API operation (67)
18:47:42.937 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.delete_request callback:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileGet finished. res = "OK". elapsed time 2 ms (67). No pending ZeroNet API operations

fileDelete - file is deleted on filesystem but UI server is returning [Errno 2] No such file or directory
18:47:42.937 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.delete_request callback:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileDelete started (68). 1 pending ZeroNet API operation (68)
18:47:42.942 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.delete_request callback:
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477 fileDelete finished.
res = "Failed. error = {\"error\":\"Delete error:
[Errno 2] No such file or directory: 'data/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477'\"}". elapsed time 5 ms (68). No pending ZeroNet API operations



UI-server:

[18:47:33] Site:1JeHa6..mCXk Signing: data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/content.json
[18:47:33] Site:1PgyTn..z2zh Opening site data directory: data/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/...
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1507104858304-1496820256791-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1507221875050-1507221875050-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1503919918798-1496820256791-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1503919918798-1496820690619-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - data.json
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1496820690619-1496820256791-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1496820256791-1496820256791-1-chat.json-old

[18:47:33] Site:1PgyTn..z2zh - [OPTIONAL] d945ff7e85.1476986504477

[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1507105144620-1496820690619-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - [OPTIONAL] 2415dcb640.1507740450972
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] 1507105555199-1496820690619-1-chat.json-old
[18:47:33] Site:1PgyTn..z2zh - status.json
[18:47:33] Site:1PgyTn..z2zh - like.json
[18:47:33] Site:1PgyTn..z2zh - [SKIPPED] content.json
[18:47:33] Site:1PgyTn..z2zh Changed files: [u'data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/content.json', u'data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/2415dcb640.1507740450972',
u'data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477']

[18:47:42] Site:1JeHa6..mCXk Deleting optional file: data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477
[18:47:42] Site:1PgyTn..z2zh Deleted file: data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477
[18:47:42] Site:1JeHa6..mCXk File delete error: Exception -
[Errno 2] No such file or directory: 'data/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1476986504477'

Update: Added more console.log messages and a workaround. checking file before and after fileDelete operation. console.log:

step 1: fileGet - file exists before step 2 fileDelete
07:48:22.754 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.delete_request callback 0: 
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileGet started (68). 1 pending ZeroNet API operation (68)
07:48:22.756 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.delete_request callback 0: 
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileGet finished. res = "OK". elapsed time 2 ms (68). No pending ZeroNet API operations

step 2: fileDelete - returns Delete error: [Errno 2] No such file or directory. file was deleted from filesystem
07:48:22.757 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.delete_request fileGet callback 1: 
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileDelete started (69). 1 pending ZeroNet API operation (69)
07:48:22.761 MoneyNetworkAPI.js:1456 MoneyNetworkAPI.send_message.delete_request fileDelete callback 2: 
res2 = {"error":"Delete error: [Errno 2] No such file or directory: 'data/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876'"}
07:48:22.762 MoneyNetworkAPI.js:1456 MoneyNetworkAPI.send_message.delete_request fileDelete callback 2: 
issue 1140. https://github.com/HelloZeroNet/ZeroNet/issues/1140. step 2 FileDelete returned No such file or directory
07:48:22.762 MoneyNetworkAPI.js:281 MoneyNetworkAPI.send_message.delete_request fileDelete callback 2: 

step 3: fileGet - verify that file was deleted in step 2
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileGet started (70). 2 pending ZeroNet API operations (69,70)
07:48:22.764 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.delete_request fileDelete callback 2: 
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileGet finished. res = "Not found". elapsed time 2 ms (70). 1 pending ZeroNet API operation (69)
07:48:22.764 MoneyNetworkAPI.js:295 MoneyNetworkAPI.send_message.delete_request fileGet callback 1: 
merged-MoneyNetwork/1PgyTnnACGd1XRdpfiDihgKwYRRnzgz2zh/data/users/18DbeZgtVCcLghmtzvg4Uv8uRQAwR8wnDQ/d945ff7e85.1475760967876 fileDelete finished. res = "OK". elapsed time 7 ms (69). No pending ZeroNet API operations

Javascript with workaround:

delete_request = function () {
    var pgm = self.module + '.send_message.delete_request callback 0: ';
    var debug_seq1;
    if (!cleanup_job_id) return; // already run
    cleanup_job_id = null;
    // problem with fileDelete: Delete error: [Errno 2] No such file or directory. checking file before fileDelete operation
    // step 1: check file before fileDelete
    debug_seq1 = MoneyNetworkAPILib.debug_z_api_operation_start(pgm, inner_path4, 'fileGet');
    self.ZeroFrame.cmd("fileGet", {inner_path: inner_path4, required: false, timeout: 1}, function (res1) {
        var pgm = self.module + '.send_message.delete_request fileGet callback 1: ';
        var debug_seq2;
        MoneyNetworkAPILib.debug_z_api_operation_end(debug_seq1, res1 ? 'OK' : 'Not found');
        if (!res1) {
            console.log(pgm + 'warning. optional file ' + inner_path4 + ' was not found');
            return;
        }
        // step 2: fileDelete
        debug_seq2 = MoneyNetworkAPILib.debug_z_api_operation_start(pgm, inner_path4, 'fileDelete');
        ZeroFrame.cmd("fileDelete", inner_path4, function (res2) {
            var pgm = self.module + '.send_message.delete_request fileDelete callback 2: ';
            var debug_seq3;
            self.log(pgm, 'res2 = ' + JSON.stringify(res2));
            if ((res2 == 'ok') || (!res2.error.match(/No such file or directory/))) {
                MoneyNetworkAPILib.debug_z_api_operation_end(debug_seq2, res2 == 'ok' ? 'OK' : 'Failed. error = ' + JSON.stringify(res2));
                return;
            }
            // step 3: check file after fileDelete
            // fileDelete returned No such file or directory. Recheck that file has been deleted
            self.log(pgm, 'issue 1140. https://github.com/HelloZeroNet/ZeroNet/issues/1140. step 2 FileDelete returned No such file or directory');
            debug_seq3 = MoneyNetworkAPILib.debug_z_api_operation_start(pgm, inner_path4, 'fileGet');
            self.ZeroFrame.cmd("fileGet", {inner_path: inner_path4, required: false, timeout: 1}, function (res3) {
                var pgm = self.module + '.send_message.delete_request fileGet callback 3: ';
                MoneyNetworkAPILib.debug_z_api_operation_end(debug_seq3, res3 ? 'OK' : 'Not found');
                if (!res3) {
                    // everything is fine. request file was deleted correct in step 2
                    MoneyNetworkAPILib.debug_z_api_operation_end(debug_seq2, 'OK');
                }
                else {
                    self.log(pgm, 'issue 1140. something is very wrong. first fileGet returned OK, fileDelete returned No such file or directory and last fileGet returned OK');
                    MoneyNetworkAPILib.debug_z_api_operation_end(debug_seq2, res2 == 'ok' ? 'OK' : 'Failed. error = ' + JSON.stringify(res2));
                }
            });
        }); // fileDelete callback

    }); // z_file_get callback

}; // delete_request

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans MoneyNetworkAPI.js, au niveau du flux delete_request, et suivez les appels fileGet et fileDelete de ZeroFrame en les comparant au journal de UI-server. Reproduisez la séquence signalée et vérifiez que la suppression d’un fichier du système de fichiers produit un résultat fileDelete cohérent sans que l’opération de nettoyage soit faussement considérée comme ayant échoué.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
api, backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.