View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006821 | SymmetricDS Pro | Improvement | public | 2025-04-14 20:32 | 2025-04-16 14:00 |
Reporter | elong | Assigned To | elong | ||
Priority | normal | ||||
Status | resolved | Resolution | fixed | ||
Product Version | 3.15.0 | ||||
Target Version | 3.15.16 | Fixed in Version | 3.15.16 | ||
Summary | 0006821: Batch fails with BadPaddingException and keeps retrying | ||||
Description | When using encrypted staging, a batch can fail with a BadPaddingException or IllegalBlockSizeException if the batch is corrupted on disk in staging. It keeps retrying to send the batch, but fails each time. Instead, it could handle the exception as a ProtocolException to remove the batch from staging and retry extraction. StackTraceKey.init [RuntimeException:3750370382] java.lang.RuntimeException: java.io.IOException: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. at org.jumpmind.symmetric.service.impl.DataExtractorService.transferFromStaging(DataExtractorService.java:1374) at org.jumpmind.symmetric.service.impl.DataExtractorService.sendOutgoingBatch(DataExtractorService.java:1242) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:612) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:420) at org.jumpmind.symmetric.service.impl.PushService.pushToNode(PushService.java:212) at org.jumpmind.symmetric.service.impl.PushService.execute(PushService.java:167) at org.jumpmind.symmetric.service.impl.NodeCommunicationService$1.run(NodeCommunicationService.java:547) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.io.IOException: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. at java.base/javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:148) at java.base/javax.crypto.CipherInputStream.read(CipherInputStream.java:261) at java.base/java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:242) at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158) at java.base/java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117) at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270) at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313) at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188) at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177) at java.base/java.io.BufferedReader.fill(BufferedReader.java:162) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:329) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:396) at org.jumpmind.symmetric.service.impl.DataExtractorService.transferFromStaging(DataExtractorService.java:1284) ... 9 more Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:862) at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:942) at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:826) at java.base/com.sun.crypto.provider.DESedeCipher.engineDoFinal(DESedeCipher.java:338) at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2152) at java.base/javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:145) ... 21 more | ||||
Steps To Reproduce | 1. Setup server and client 2. Stop push/pull jobs on client 3. Run heartbeat on client or server 4. View the batch contents, causing it to extract 5. Edit the file in staging and damage it 6. Run the push/pull jobs | ||||
Tags | extract | ||||
SymmetricDS: 3.15 42061555 2025-04-16 12:34:13 Committer: GitHub Details Diff |
0006821: Fix Batch fails with BadPaddingException and keeps retrying (0000250) * 0006821: Batch fails with BadPaddingException and keeps retrying |
Affected Issues 0006821 |
|
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java | Diff File | ||
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ManageIncomingBatchListener.java | Diff File | ||
mod - symmetric-util/src/main/java/org/jumpmind/util/ExceptionUtils.java | Diff File | ||
SymmetricDS: 3.16 07311ac1 2025-04-16 12:34:13 Details Diff |
0006821: Fix Batch fails with BadPaddingException and keeps retrying (0000250) * 0006821: Batch fails with BadPaddingException and keeps retrying |
Affected Issues 0006821 |
|
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java | Diff File | ||
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/ManageIncomingBatchListener.java | Diff File | ||
mod - symmetric-util/src/main/java/org/jumpmind/util/ExceptionUtils.java | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-04-14 20:32 | elong | New Issue | |
2025-04-14 20:32 | elong | Status | new => assigned |
2025-04-14 20:32 | elong | Assigned To | => elong |
2025-04-14 20:32 | elong | Tag Attached: extract | |
2025-04-14 20:33 | elong | Project | SymmetricDS => SymmetricDS Pro |
2025-04-15 14:51 | elong | Status | assigned => resolved |
2025-04-15 14:51 | elong | Resolution | open => fixed |
2025-04-15 14:51 | elong | Fixed in Version | => 3.15.16 |
2025-04-15 18:31 | elong | Issue cloned: 0006824 | |
2025-04-15 18:31 | elong | Relationship added | related to 0006824 |
2025-04-16 12:34 | pbelov | Note Added: 0002811 | |
2025-04-16 13:00 | elong | Changeset attached | => SymmetricDS 3.15 42061555 |
2025-04-16 14:00 | elong | Changeset attached | => SymmetricDS 3.16 07311ac1 |