[TileDB::Filter] Error: Error incorrect unfiltered tile size allocated

Hallo everyone,

I’m following the tutorial to read some arrays.

It’s just:
with tiledb.DenseArray(database_path, mode=‘r’) as arr:
** data = arr[:]**
I got this error: [TileDB::Filter] Error: Error incorrect unfiltered tile size allocated.
The arr.dump() output is:
- Array type: dense
- Cell order: row-major
- Tile order: row-major
- Capacity: 10000
- Allows duplicates: false
- Coordinates filters: 1

  • ZSTD: COMPRESSION_LEVEL=-1*
    - Offsets filters: 1

  • ZSTD: COMPRESSION_LEVEL=-1*
    - Validity filters: 1

  • RLE: COMPRESSION_LEVEL=-1*

### Dimension ###
- Name: u
- Type: UINT16
- Cell val num: 1
- Domain: [0,719]
- Tile extent: 720
- Filters: 0

### Dimension ###
- Name: v
- Type: UINT16
- Cell val num: 1
- Domain: [0,1279]
- Tile extent: 1280
- Filters: 0

### Attribute ###
- Name: r
- Type: UINT8
- Nullable: false
- Cell val num: 1
- Filters: 0
- Fill value: �

### Attribute ###
- Name: g
- Type: UINT8
- Nullable: false
- Cell val num: 1
- Filters: 0
- Fill value: �

### Attribute ###
- Name: b
- Type: UINT8
- Nullable: false
- Cell val num: 1
- Filters: 0
- Fill value: �

### Attribute ###
- Name: d
- Type: FLOAT32
- Nullable: false
- Cell val num: 1
- Filters: 0
- Fill value: nan

### Attribute ###
- Name: Classification
- Type: UINT8
- Nullable: false
- Cell val num: 1
- Filters: 0
- Fill value: �

This is an old data which was created some months before. At that time there was no problem with reading the arrays but somehow I can’t read the them anymore.

Does anyone know the reason?
Thanks!

Hello @Hao, TileDB fully supports backwards compatibility so the fact this dataset is older should not be a problem. This appears to be a defect which we will look into. Can you let us know which version of TileDB and TileDB-Py you are using when you encountered the error?

Would it be possible to get access to array that you are having the issue with? The easiest option is to register the array on TileDB Cloud and then share it with me (seth) there.

You can also email me directly with the dataset at seth@tiledb.com, if you’d prefer that.

Hello Seth, thanks for the reply. I tried to read the data in different environments:
1.

tiledb.version
‘0.17.5’
tiledb.libtiledb.version()
(2, 11, 3)

2.

tiledb.version
‘0.15.3’
tiledb.libtiledb.version()
(2, 9, 3)

3.

tiledb.version
‘0.17.6’
tiledb.libtiledb.version()
(2, 11, 3)

The error info is:
data = arr[:]

  • File “tiledb/libtiledb.pyx”, line 4282, in tiledb.libtiledb.DenseArrayImpl.getitem*
  • File “tiledb/libtiledb.pyx”, line 4416, in tiledb.libtiledb.DenseArrayImpl.subarray*
  • File “tiledb/libtiledb.pyx”, line 4445, in tiledb.libtiledb.DenseArrayImpl._read_dense_subarray*
    tiledb.cc.TileDBError: [TileDB::Filter] Error: Error incorrect unfiltered tile size allocated.

The arrays are from our partner. I’m not sure if I’m allowed to share the data. The tree structure of this array looks like this:
.
├── __1649250153848_1649250153848_8eb70f8d6b7848c9b8884e06ebcc4ab7_10
│ ├── a0.tdb
│ ├── a1.tdb
│ ├── a2.tdb
│ ├── a3.tdb
│ ├── a4.tdb
│ └── __fragment_metadata.tdb
├── __1649250153848_1649250153848_8eb70f8d6b7848c9b8884e06ebcc4ab7_10.ok
├── __lock.tdb
├── __meta
└── __schema
└── __1649250153834_1649250153834_b7fb3acdc58d4fe3a3e7b56a5dcdeaf3

Hope this will be useful.

Thanks!

just clicked on the wrong Reply