Invalid attachment data on server error when getting doc with attachments

Đang mở
#8,998 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript, node.js
Lĩnh vực
database

Hướng nghiên cứu

Chạy bản tái hiện gist với thiết lập nginx và CouchDB, sau đó kiểm tra packages/node_modules/pouchdb-core/src/adapter.js tại dòng 665, nơi các lỗi của yêu cầu attachment chưa được xử lý. Issue được hoàn tất khi một yêu cầu attachment thất bại khiến yêu cầu tài liệu ném ra lỗi thay vì lưu phản hồi lỗi của máy chủ dưới dạng dữ liệu attachment.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Issue

When requesting a doc with attachments, if an attachment request fails, the doc attachment data will save the error message, instead of failing the request, resulting in invalid attachments.

This can happen during replication, bulkGet, etc.

Info
  • Environment: node.js, browser
  • Adapter: http (?)
  • Server: CouchDb
Reproduce

Here's the gist: https://gist.github.com/dianabarsan/c08f5fc114c221a99d2afad7c870bf76

It adds a minimal nginx config that responds with a 400 to an attachment request, and proxies all other requests to a vanilla CouchDb 3.4.2, using docker compose.
Has a Javascript file that:

  • creates a database
  • creates a doc with a plain text attachment
  • initializes a PouchDb connection and does a db.get and logs the content of the attachment, which is the default nginx html error page for 400.

Desired behavior here would be to throw an error when the attachment get request responds with an error.

Faulty code is here:
https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-core/src/adapter.js#L665 where the potential error is not handled.

Ngôn ngữ chính
JavaScript
Star
17.6k
Fork
1.5k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/pouchdb

Tất cả issue của apache/pouchdb

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.