kevva / kevva/decompress

Windows Decompress Does Not Always Trigger 'Then' Promise

Open
#42 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
419
Forks
55
PR merge metrics
No merged PRs in 30d

Description

Hi - Great plugin we are using to decompress a lot of files. I came across a certain distribution (phpMyAdmin) which decompresses but fails to invoke the 'then' promise. This only happens on Windows, I verified it works fine on OSX (not verified on Linux, but I assume to be Windows only). Another interesting fact is that the same failure happens with any format of their distribution (zip, tar.gz, tar.bz2). You can test with any of their downloads from:

https://www.phpmyadmin.net/downloads/

Here is the test case I used to show this issue:

```
var decompress = require('decompress');

decompress('c:\\temp\\phpMyAdmin-4.6.3-english.tar.bz2', 'c:\\temp').then(files => {
console.log('Finished!');
}).catch(function(err) {
console.log(err);
});

console.log('End of Script');
```

On Windows this test script will extract the entire archive, but never log 'Finished!'. On other platforms it works as intended. I am suspicious of circular references and symlinks in the archive but it should still invoke the promise. I also tried test, extracting, and re-creating the archive but the behavior remains the same.

Thanks and let me know if I can be of further assistance.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by running the provided Node.js decompress call with a phpMyAdmin archive from the downloads page on Windows, then compare promise completion with another platform. Trace the extraction completion path across the zip, tar.gz, and tar.bz2 cases; done means the returned promise invokes then after the archive is fully extracted.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, nodejs
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.