Skip to content

Getting issue in segment syncing after upgrading to 4.18.2 and disabling streaming #613

@Prarabdh05

Description

@Prarabdh05

Getting this error from split io:

[split-segmentFetcher-0] ERROR io.split.engine.segments.SegmentFetcherImp - RefreshableSegmentFetcher failed: Error occurred when trying to sync segment: moisture-management, since: 1646842584290. Details: java.lang.IllegalStateException: Problem in http get operation: javax.net.ssl.SSLException: Connection reset

Earlier I was using 4.4.2 SDK which was causing unnecessary threads in thread dump even after closing the connection, earlier split.io config we were using:
int featuresRefreshRate = 5;
int segmentsRefreshRate = 60;
int impressionsRefreshRate = 60;

    SplitClientConfig splitConfig =
        SplitClientConfig.builder()
            .featuresRefreshRate(featuresRefreshRate)
            .segmentsRefreshRate(segmentsRefreshRate)
            .impressionsRefreshRate(impressionsRefreshRate)
            .setBlockUntilReadyTimeout(5 * 60 * 60)
            .build();

there we were getting multiple threads of following type whenever creating and closing a connection:
Split-SSERefreshToken-0
SPLIT-SSEConnection-0
SPLIT-PushStatusMonitor-0
SPLIT-PollingMode-0

Later I upgraded the SDK to 4.18.2 with same configs as above and then even after creating a connection, following threads were not getting closed (As checked by getting thread dump locally ) :
Split-SSERefreshToken-0
SPLIT-SSEConnection-0

so I changed the config a little bit:
disabled streaming and increased featureRefreshRate from 5 seconds to 60 seconds
int featuresRefreshRate = 60;
int segmentsRefreshRate = 60;
int impressionsRefreshRate = 60;

    SplitClientConfig splitConfig =
        SplitClientConfig.builder()
            .featuresRefreshRate(featuresRefreshRate)
            .segmentsRefreshRate(segmentsRefreshRate)
            .impressionsRefreshRate(impressionsRefreshRate)
            .streamingEnabled(false)
            .setBlockUntilReadyTimeout(5 * 60 * 60)
            .build();

which is now closing all the threads
after deploying to production, threads are getting closed but noticing this issue for multiple segments:

[split-segmentFetcher-0] ERROR io.split.engine.segments.SegmentFetcherImp - RefreshableSegmentFetcher failed: Error occurred when trying to sync segment: moisture-management, since: 1646842584290. Details: java.lang.IllegalStateException: Problem in http get operation: javax.net.ssl.SSLException: Connection reset

also memory usage of our system are increasing rapidly after making above config changes on prod.

is it due to disabling streaming ? If I am enabling streaming then below threads are not getting closed even after destroying the client:
Split-SSERefreshToken-0
SPLIT-SSEConnection-0

above both are an issue in this version or I am using configs incorrectly ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions