Seek fault when downloading some files

オープン
#470 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
typescript
領域
backend

調査の方向性

まず、一覧にあるファイルと concurrency: 2 を使って getDirectory で失敗を再現し、次に Seek fault の原因となっている転送経路を追跡します。失敗するファイルと成功するファイルを比較し、tick callback がどのようにエラーを受け取るかを調べます。対象ファイルが正常にダウンロードされ、動作に対する回帰テストのカバレッジがある状態を完了とします。

索引モデルが issue の本文から書いたものです。

説明

unconfirmed bug

I try to download a directory, for some files I get an seek faul error. Always the same files failing.

// Function to download a directory
async function backupDirectory(backupDir) {
  try {
    await sftp.connect(server);
    
    console.log('Connected to SFTP server');
    
    const failed = []
    const successful = []
    
    const status = await sftp.getDirectory(backupDir, '/0g564be4cbaMfUx3', {
      recursive: true,
      concurrency: 2,
      tick: function(localPath, remotePath, error) {
        if (error) {
          console.log(`Failed to download ${remotePath}: ${error}`);
          failed.push(localPath)
        } else {
          console.log(`Successfully downloaded ${remotePath}`);
          successful.push(localPath)
        }
      }
    });
    
    console.log('the directory transfer was', status ? 'successful' : 'unsuccessful')
    console.log('failed transfers', failed.length);
    console.log('successful transfers', successful.length);
  } catch (err) {
    console.error('SFTP error:', err);
  } finally {
    await sftp.dispose();
  }
}

Console output:

Connected to SFTP server
Failed to download \0g564be4cbaMfUx3\_foundUrlsWithoutStatus.json: Error: Seek fault.
Successfully downloaded \0g564be4cbaMfUx3\config.json
Failed to download \0g564be4cbaMfUx3\foundUrls.json: Error: Seek fault.
Successfully downloaded \0g564be4cbaMfUx3\foundUrlsHistory.json
Successfully downloaded \0g564be4cbaMfUx3\history.json
Successfully downloaded \0g564be4cbaMfUx3\pdfs.json
Successfully downloaded \0g564be4cbaMfUx3\report.json
Successfully downloaded \0g564be4cbaMfUx3\sitemap.json
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-error-error-faces-code-404.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-error-error-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-imprint-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-licenseinfo-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-privacy-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-sitemap-sitemap-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-subMenu-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-accessibilityHelp-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-accessibilityStatement-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\reports\hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-easyLanguageHelp-faces.json: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-error-error-faces-code-404.jpeg: Error: Seek fault.
Successfully downloaded \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-error-error-faces.jpeg
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-imprint-faces.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-licenseinfo-faces.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-imprint-privacy-faces.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-sitemap-sitemap-faces.jpeg: Error: Seek fault.
Successfully downloaded \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-subMenu-faces.jpeg
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-accessibilityHelp-faces.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-accessibilityStatement-faces.jpeg: Error: Seek fault.
Failed to download \0g564be4cbaMfUx3\screenshots\Full_hio-eh-prod-hispro-de-qisserver-pages-cs-sys-portal-utilities-easyLanguageHelp-faces.jpeg: Error: Seek fault.
the directory transfer was unsuccessful
failed transfers 22
successful transfers 8
主要言語
TypeScript
スター
1k
フォーク
94
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

steelbrain/node-ssh のほかの issue

steelbrain/node-ssh の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。