Azure / azure-kusto-java

Microsoft Azure Kusto Library for Java
MIT License
38 stars 43 forks source link

[BUG] Using Kusto QueuedIngestClient throwing ConcurrentModificationException #352

Closed anuchandy closed 9 months ago

anuchandy commented 9 months ago

Describe the bug I saw in my application logs a lot of ConcurrentModificationException flying. They also seam to occur irregularly and I haven't been able to reproduce it safely yet.

Exception or Stack Trace This is the (shortened) Stacktrace I get:

java.util.ConcurrentModificationException
    at java.base/java.util.ArrayDeque.nonNullElementAt(ArrayDeque.java:269)
    at java.base/java.util.ArrayDeque$DeqIterator.next(ArrayDeque.java:699)
    at com.microsoft.azure.kusto.ingest.resources.RankedStorageAccount.getRank(RankedStorageAccount.java:86)
    at com.microsoft.azure.kusto.ingest.resources.RankedStorageAccountSet.getRankedShuffledAccounts(RankedStorageAccountSet.java:79)
    at com.microsoft.azure.kusto.ingest.ResourceManager.getShuffledContainers(ResourceManager.java:137)
    at com.microsoft.azure.kusto.ingest.ResourceAlgorithms.uploadStreamToBlobWithRetries(ResourceAlgorithms.java:85)
    at com.microsoft.azure.kusto.ingest.QueuedIngestClientImpl.ingestFromStreamImpl(QueuedIngestClientImpl.java:217)
    at com.microsoft.azure.kusto.ingest.IngestClientBase.lambda$ingestFromStream$3(IngestClientBase.java:139)
    at com.microsoft.azure.kusto.data.instrumentation.MonitoredActivity.invoke(MonitoredActivity.java:33)
    at com.microsoft.azure.kusto.data.instrumentation.MonitoredActivity.invoke(MonitoredActivity.java:26)
    at com.microsoft.azure.kusto.ingest.IngestClientBase.ingestFromStream(IngestClientBase.java:138)

To Reproduce See above, not sure yet under what circumstances it can occur.

Setup (please complete the following information):

anuchandy commented 9 months ago

Transferring the issue from azure-sdk-for-java repro

\cc the-mod

the-mod commented 9 months ago

@yihezkel I saw the Fix got merged. Can you tell me an ETA for a new Version or provide a preview Version?