Skip to content

Conversation

@leizhiyuan
Copy link
Contributor

(If this PR fixes a github issue, please add Fixes #<xyz>.)

Fixes #16074

(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)

Master Issue: #

Motivation

Explain here the context, and why you're making that change. What is the problem you're trying to solve.

Modifications

Describe the modifications you've done.

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

  • Added integration tests for end-to-end deployment with large payloads (10MB)
  • Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If yes was chosen, please highlight the changes

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API: (yes / no)
  • The schema: (yes / no / don't know)
  • The default values of configurations: (yes / no)
  • The wire protocol: (yes / no)
  • The rest endpoints: (yes / no)
  • The admin cli options: (yes / no)
  • Anything that affects deployment: (yes / no / don't know)

Documentation

Check the box below or label this PR directly.

Need to update docs?

  • doc-required
    (Your PR needs to update docs and you will update later)

  • doc-not-needed
    (Please explain why)

  • doc
    (Your PR contains doc changes)

  • doc-complete
    (Docs have been already added)

Copy link
Member

@lhotari lhotari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although this might mitigate the problem, I think that this might have a significant performance impact.

An alternative solution would be to have a threadlocal counter that counts the "depth" of readMoreEntries calls and schedules the call to the executor only when a given threshold is exceeded.

@BewareMyPower
Copy link
Contributor

Could you provide more analysis about how does it happen?

@leizhiyuan
Copy link
Contributor Author

#16074

if depth is exceeded, we dispatch it to another thread,maybe it will fail again in another thread.

maybe we should abort the invoke when reaching up to the max depth?

@leizhiyuan
Copy link
Contributor Author

Could you provide more analysis about how does it happen?

we found this in our production env. when all consumers disconnected, and then connect again, it may occur.

@BewareMyPower
Copy link
Contributor

I found a similar fix just now, see #14121. Could you also share your point on this PR? @eolivelli

Actually I'm a little confused in which case should readMoreEntries be called in BrokerService's executor. /cc @lhotari

@BewareMyPower BewareMyPower requested a review from eolivelli June 21, 2022 15:49
@BewareMyPower BewareMyPower added type/bug The PR fixed a bug or issue reported a bug area/broker labels Jun 21, 2022
@github-actions
Copy link

@leizhiyuan Please provide a correct documentation label for your PR.
Instructions see Pulsar Documentation Label Guide.

@github-actions
Copy link

The pr had no activity for 30 days, mark with Stale label.

@github-actions github-actions bot added the Stale label Jul 22, 2022
@Technoboy- Technoboy- added this to the 3.2.0 milestone Jul 31, 2023
@Technoboy- Technoboy- modified the milestones: 3.2.0, 3.3.0 Dec 22, 2023
@coderzc coderzc modified the milestones: 3.3.0, 3.4.0 May 8, 2024
@lhotari lhotari modified the milestones: 4.0.0, 4.1.0 Oct 14, 2024
@leizhiyuan
Copy link
Contributor Author

Since it takes a long time and the code differences are too large, I will close this PR.

@leizhiyuan leizhiyuan closed this Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/broker doc-label-missing Stale type/bug The PR fixed a bug or issue reported a bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

stackoverflow when many unacked messages or delay messages

5 participants