-
Notifications
You must be signed in to change notification settings - Fork 4k
Shrink queue process state in case of abnormal queue [member] process termination to reduce peak memory footprint #14523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shrink queue process state in case of abnormal queue [member] process termination to reduce peak memory footprint #14523
Conversation
ccdb859
to
459c0bc
Compare
fe3e6d9
to
9f51488
Compare
9f51488
to
4a64e41
Compare
4a64e41
to
0263ae0
Compare
0263ae0
to
40772c2
Compare
40772c2
to
296c014
Compare
2cf753b
to
1022b9c
Compare
1022b9c
to
2ebb1b2
Compare
CI has lots of config related failures, could they be caused by the config changes in this PR? |
The OCI failure has to do with the fact that @lukebakken is an external collaborator. I will re-trigger the rest, they seem to be flakes. |
2ebb1b2
to
29e39c8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The failures are legit and have to do with the fact that a cuttlefish
run now produces one extra key.
The solution is to use cuttlefish:unset/0
for the rabbitmq.conf
values that are unset/undefined.
29e39c8
to
44a9fb5
Compare
@michaelklishin sorry, I clicked only the first failing action, saw that it had something to do with the generic-unix package, and didn't think to click the other ones. Anyway, |
I confirm that the Cuttlefish schema suites in several plugins now pass for me locally. |
I spoke too soon. Dialyzer time. |
I gave this a try locally and setting both options really cuts down on the exit report 👍. I see 1166 lines of error logs with nothing set and just 172 lines (mostly from the error logger not printing all messages in the mailbox) with |
44a9fb5
to
246e01a
Compare
TIL: |
246e01a
to
afbbf01
Compare
@michaelklishin looks like I figured out the dialyzer checks. |
* Call `Mod:format_state/1` if exported to possibly truncate huge states * Add more information about truncated ram_pending_ack and disk_pending_ack * Add `log.error_logger_format_depth` cuttlefish schema value * Add `format_state/1` to `rabbit_channel` * Add `log.summarize_process_state`, default is `false`, to enable summarizing process state for crash logs. * Added `format_state` to `rabbit_classic_queue_index_v2` and `rabbit_classic_queue_store_v2` * Ensure `rabbit_channel:format_state/1` uses `summarize_process_state_when_logged` * Do not set `summarize_process_state_when_logged` value by default. * Type specs
afbbf01
to
db1291d
Compare
Shrink queue process state in case of abnormal queue [member] process termination to reduce peak memory footprint (backport #14523)
Mod:format_state/1
if exported to possibly truncate huge stateslog.error_logger_format_depth
cuttlefish schema valueYou can use this branch to test these changes - it calls
exit()
the first time a delivery is attempted to a consumer:https://github.com/lukebakken/rmq-rabbitmq-server/tree/lukebakken/fix-format-status-test-exit
I've used it with PerfTest to crash the queue process:
Finally, see this discussion!
#14349