minio / minio

The Object Store for AI Data Infrastructure

Home Page:https://min.io/download

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[SNSD] Unexpected EOF when downloading File

technofetishism opened this issue · comments

NOTE

We have a single part file stored on minio. When attempting to download it, use mc cat, or other methods of reading the file via minio, the stream terminates with an

mcli: <ERROR> Unable to read from `minio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee`. unexpected EOF.

Inspecting the file on the underlying filesystem shows that the file is not truncated in comaprision to the files metadata

mcli stat minio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee Name : 88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee Date : 2024-04-24 10:05:21 UTC Size : 2.3 MiB ETag : cb28bbfea8a830ad0c0a879f5c6c8ead Type : file Metadata : Content-Type: binary/octet-stream

/data/minio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee/6bb0aeef-6cb4-4f36-9147-d1750e517904$ du -h part.1 2.4M part.1

and appears to be a difference expected by the added information by minio.

Investigating the file in the backend where the downloads terminate shows the following (this is in vim)

DH002940 308820.000 7370360.000 SURV 1009.855 -25.099 -12.205 1^\ßYf7Ç%´®¾wá<99>·ª&@<98>!?ÂPÖqÖ<8f>µ$¾Ôà'034.953 ^M

The original file is

DH002940 308820.000 7370360.000 SURV 1009.855 -25.099 -12.205 1034.953 ^M

and the download fails exactly at

DH002940 308820.000 7370360.000 SURV 1009.855 -25.099 -12.205 1mcli: <ERROR> Unable to read fromminio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee`. unexpected EOF.

Right where the control code shows up `^'

Running mcli admin trace -a -v gives the following with the opinion of minio the

127.0.0.1:9000 [OS os.OpenFileR] [2024-05-02T05:23:37.928] /data/minio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee/xl.meta 53.928µs
127.0.0.1:9000 [STORAGE storage.ReadXL] [2024-05-02T05:23:37.928] /data/minio gitlab-lfs af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee total-errs-availability=0 total-errs-timeout=0 106.591µs
127.0.0.1:9000 [OS os.OpenFileR] [2024-05-02T05:23:37.930] /data/minio/gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee/6bb0aeef-6cb4-4f36-9147-d1750e517904/part.1 30.161µs
127.0.0.1:9000 [STORAGE storage.ReadFileStream] [2024-05-02T05:23:37.930] /data/minio gitlab-lfs af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee/6bb0aeef-6cb4-4f36-9147-d1750e517904/part.1 total-errs-availability=0 total-errs-timeout=0 96.237µs
s3.company.io:9000 [REQUEST s3.GetObject] [2024-05-02T05:23:37.928] [Client IP: 10.15.130.3]
s3.company.io:9000 GET /gitlab-lfs/af/6e/88db16ce4eb70e9445dc2aa499d352404cf03447a88ab92900ca8889d9ee?response-content-disposition=attachment%3B%20filename%3D%22qerlcfly2z.map%22%3B%20filename%2A%3DUTF-8%27%27qerlcfly2z.map&response-content-type=application%2Foctet-stream&X-Amz-Expires=600&X-Amz-Date=20240502T052337Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=F20240502%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=0c033d6586a28e159a72fd305325c60fa800ea8b10fb7cedfd3cc627c8e257d2
s3.company.io:9000 Proto: HTTP/1.1
s3.company.io:9000 Host: s3.company.io:9000
s3.company.io:9000 Accept-Encoding: gzip, deflate, br
s3.company.io:9000 Connection: keep-alive
s3.company.io:9000 Sec-Fetch-Mode: navigate
s3.company.io:9000 Sec-Fetch-Site: same-site
s3.company.io:9000 Sec-Fetch-User: ?1
s3.company.io:9000 X-Amz-Signature-Age: 929
s3.company.io:9000 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
s3.company.io:9000 Content-Length: 0
s3.company.io:9000 Upgrade-Insecure-Requests: 1
s3.company.io:9000 Sec-Fetch-Dest: document
s3.company.io:9000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0
s3.company.io:9000 Accept-Language: en-US,en;q=0.5
s3.company.io:9000 Cookie: token=
s3.company.io:9000 Referer: https://gitlab.company.io/
s3.company.io:9000
s3.company.io:9000 [RESPONSE] [2024-05-02T05:23:38.078] [ Duration 150.492ms TTFB 2.925007ms ↑ 202 B ↓ 1.0 MiB ]
s3.company.io:9000 200 OK
s3.company.io:9000 Server: MinIO
s3.company.io:9000 Vary: Origin,Accept-Encoding
s3.company.io:9000 Content-Disposition: attachment; filename="qerlcfly2z.map"; filename*=UTF-8''qerlcfly2z.map
s3.company.io:9000 X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
s3.company.io:9000 X-Xss-Protection: 1; mode=block
s3.company.io:9000 Accept-Ranges: bytes
s3.company.io:9000 Content-Length: 2434097
s3.company.io:9000 Content-Type: application/octet-stream
s3.company.io:9000 Last-Modified: Wed, 24 Apr 2024 10:05:21 GMT
s3.company.io:9000 Strict-Transport-Security: max-age=31536000; includeSubDomains
s3.company.io:9000 X-Amz-Request-Id: 17CB948D57BF77F7
s3.company.io:9000 ETag: "cb28bbfea8a830ad0c0a879f5c6c8ead"
s3.company.io:9000 X-Content-Type-Options: nosniff
s3.company.io:9000
s3.company.io:9000

Your Environment

  • Version used (minio --version): RELEASE.2024-05-01T01-11-10Z
  • Server setup and configuration: Single disk single node VM running as systemd service
  • Operating System and version (uname -a): 6.5.0-26-generic #26~22.04.1-Ubuntu

Is your backend filesystem ext4?

backend filesystem is on xfs

Part files have streaming checksums. If your download terminates with unexpected EOF at a boundary, a chunk failed the checksum. If you have no redundancy there is no way to reconstruct this.

backend filesystem is on xfs

It looks like your data is bit-rotted, as @klauspost explained.

It would help if you had redundancy for this to reconstruct; otherwise, using a single drive, you are at the mercy of the drive.