zhoulii opened a new issue, #10534: URL: https://github.com/apache/paimon/issues/10534
### Search before asking - [x] I searched in the [issues](https://github.com/apache/paimon/issues) and found nothing similar. ### Paimon version 2.0 ### Compute Engine apache flink 1.18 ### Minimal reproduce step 1. Prepare a non-empty file accessible to the Flink tasks, such as `file:///tmp/payload.bin` in a local environment. 2. Create a Paimon append table `blob_table (id INT, picture BYTES)` with `row-tracking.enabled=true`, `data-evolution.enabled=true`, `blob-field=picture`, and `write-buffer-for-append=true`. Set `write-buffer-spillable=false` and `blob-write-null-on-fetch-failure=true`. 3. Insert a descriptor referencing that file: ```sql INSERT INTO blob_table VALUES (1, sys.path_to_descriptor('file:///tmp/payload.bin')); ``` 4. After the insert completes, run `SELECT picture FROM blob_table`. ### What doesn't meet your expectations? Expected: Paimon copies the readable source file into BLOB storage and returns its original bytes. Actual: The insert succeeds, but `picture` is NULL. With `blob-write-null-on-fetch-failure=false`, the write fails with a `NullPointerException` instead. Disabling `write-buffer-for-append` allows the same input to succeed. Append buffer serialization retains the BLOB descriptor but drops its source reader, so the payload writer cannot read the valid input. This occurs even without spilling to disk. Enabling a buffering option should not cause write failures or silently replace valid BLOB payloads with NULL. ### Anything else? _No response_ ### Are you willing to submit a PR? - [x] I'm willing to submit a PR! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
