semistone commented on issue #22601:
URL: https://github.com/apache/pulsar/issues/22601#issuecomment-2116971327

   @lhotari 
   I am checking when that byteBuf become wrong data
   and in
   OpAddEntry.java
   I verify data when construct this object and save original data
   
   and during run(), I try to compare and print bytebuf
   ```
           if (ml.hasActiveCursors()) {
               // Avoid caching entries if no cursor has been created
               EntryImpl entry = EntryImpl.create(ledgerId, entryId, data);
               // ======= print log when data go wrong
               if (!Commands.hasChecksum(data)) {  
                   log.warn("no checksum in OpAddEntry1 origin {} data  {}, now 
{} data {}", dataString,
                           new String(Base64.encodeBase64(orgData))
                           , data.toString(), new 
String(Base64.encodeBase64(entry.getData())));
               }
   ```
   
   
   it show 
   ```
   2024-05-17T07:29:16,476+0000 [BookKeeperClientWorker-OrderedExecutor-12-0] 
WARN  org.apache.bookkeeper.mledger.impl.OpAddEntry - no checksum in 
OpAddEntry1 
   origin PooledSlicedByteBuf(ridx: 13, widx: 2066, cap: 2066/2066, unwrapped: 
PooledUnsafeDirectByteBuf(ridx: 24211, widx: 24211, cap: 32768)) 
   
   data  
DgEJYVBqAAAAKwoMaHlicmlkLTQ0MC0wEI8cGPTz0av4MTILLTEyMDM1NzAyOTNI0A+IAQAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwO...
 skip
   
   ,now PooledSlicedByteBuf(ridx: 13, widx: 2066, cap: 2066/2066, unwrapped: 
PooledUnsafeDirectByteBuf(ridx: 24211, widx: 24211, cap: 32768)) 
   
   data 
MzY5NDY5NTY5NjY5NzY5ODY5OTcwMDcwMTcwMjcw0av4MTILLTEyMDM1NzAyOTNI0A+IAQAxMjM0NTY3ODkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OT
   ... skip 
   ```
   
   
   the bytebuf object haven't changed, but the data in bytebuf have changed.
   it seem like the first few bytes(about 20) will be overwrited and rest of 
the data is still ok
   
   and it's PooledSlicedByteBuf and PooledUnsafeDirectByteBuf
   
   do you have any idea how to find who change the data inside bytebuf ?
   
   
   
   


-- 
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: commits-unsubscr...@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to