Error: archive/tar: write too long
- Dominant language
- Go
- Stars
- 17.1k
- Forks
- 3.2k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 11
Description
#### Version information:
go-ipfs version: 0.4.13-
Repo version: 6
System version: amd64/windows
Golang version: go1.9.2
#### Type: Bug
#### Description:
File: /ipfs/QmWfLgAopxBBpnPsMeQWQhcVfHHEo7natWgtcX5yzw7My3
When get this file from browser:
`http://127.0.0.1/ipfs/QmWfLgAopxBBpnPsMeQWQhcVfHHEo7natWgtcX5yzw7My3 200 Ok`
Result is valid tar archive: [test tar.tar.gz](https://github.com/ipfs/go-ipfs/files/1700847/test.tar.tar.gz) (it gziped for upload to GitHub)
Blocks of this file: [blocks.tar.gz](https://github.com/ipfs/go-ipfs/files/1700817/blocks.tar.gz)
When get from console:
```
>ipfs get QmWfLgAopxBBpnPsMeQWQhcVfHHEo7natWgtcX5yzw7My3
Saving file(s) to QmWfLgAopxBBpnPsMeQWQhcVfHHEo7natWgtcX5yzw7My3
2.28 KB / 2.28 KB [==============================================] 100.00% 0s
Error: archive/tar: write too long
```
Why "ipfs get" try to read tar?
#### Additional information:
```
>ipfs dag get QmWfLgAopxBBpnPsMeQWQhcVfHHEo7natWgtcX5yzw7My3
{"data":"CAIYgBAggAgggAQggAQ=","links":[{"Cid":{"/":"QmbTswUf339CVJsqB6rSeNum7hrnUsNqFbgkth8g3u2chX"},"Name":"","Size":1165},{"Cid":{"/":"zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq"},"Name":"","Size":512},{"Cid":{"/":"zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq"},"Name":"","Size":512}]}
```
decode of data field:
```
"data":{
"Type": 2, // It's file
"filesize": 2048, // sum of blocksizes
"blocksizes": [
1024, // file header size + file data size + file padding size
512, // padding block size
512 // padding block size
]
}
```
```
>ipfs dag get QmbTswUf339CVJsqB6rSeNum7hrnUsNqFbgkth8g3u2chX
{"data":"CAISgAR0ZXN0IHRhci50eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc3NwAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAwNDQAMTMyMzY0MDYzMTAAMDExNTM3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiACCAkINwD","links":[{"Cid":{"/":"zb2rhfY128Mz2bimXoxi7aZuc5NPQMWaLPJYVSTLoYWs7rsdz"},"Name":"","Size":36},{"Cid":{"/":"zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq"},"Name":"","Size":512}]}
```
decode of data field:
```
data: {
"Type": 2, // It's file
"Data": "test tar.txt...", // 512 bytes tar file header
"filesize": 1024, // file header size + file data size + file padding size
"blocksizes": [
36, // file data size
476 // file padding size (it's hack)
]
}
```
[zb2rhfY128Mz2bimXoxi7aZuc5NPQMWaLPJYVSTLoYWs7rsdz](https://github.com/ipfs/go-ipfs/files/1701076/zb2rhfY128Mz2bimXoxi7aZuc5NPQMWaLPJYVSTLoYWs7rsdz.gz) (36) - file data raw block
```
>ipfs block get zb2rhfY128Mz2bimXoxi7aZuc5NPQMWaLPJYVSTLoYWs7rsdz
This is "test tar.txt" file content.
```
[zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq](https://github.com/ipfs/go-ipfs/files/1701078/zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq.gz) (512) - padding raw block
```
> ipfs block get zb2rhX9DvypVUCrp1SyoB6JpvdNEGcujJm7RZ6btt1zJBvnKq
```
Contributor guide
Assessment
This issue has not been assessed yet.