Skip to content
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

message pool issue #3722

Closed
waynewyang opened this issue Sep 10, 2020 · 4 comments · Fixed by #3724
Closed

message pool issue #3722

waynewyang opened this issue Sep 10, 2020 · 4 comments · Fixed by #3724

Comments

@waynewyang
Copy link
Contributor

waynewyang commented Sep 10, 2020

Describe the bug
in the outage test,t02520 cannot package his own messages because the message selection issue , and the others also cannot package t02520' messages.

To Reproduce
Steps to reproduce the behavior:

  1. Run
  • in the outage test
  1. See error
    t02520 cannot package his own messages because the message pool issue , and the others also cannot package t02520' messages, the error is below,
2020-09-10T05:15:08.547Z	INFO	sectors	storage-sealing/states_failed.go:25	pushing message to mpool: add locked failed: too many pending messages for actor(%!d(sealing.SectorState=PreCommitFailed)), waiting 190233 before retrying%!(EXTRA time.Duration=59.45299959s)
2020-09-10T05:15:08.603Z	WARN	sectors	storage-sealing/fsm.go:648	sector 190263 got error event sealing.SectorChainPreCommitFailed: pushing message to mpool: add locked failed: too many pending messages for actor
2020-09-10T05:15:08.619Z	INFO	sectors	storage-sealing/states_failed.go:25	pushing message to mpool: add locked failed: too many pending messages for actor(%!d(sealing.SectorState=PreCommitFailed)), waiting 190263 before retrying%!(EXTRA time.Duration=59.380725596s)
2020-09-10T05:15:08.683Z	WARN	sectors	storage-sealing/fsm.go:648	sector 187139 got error event sealing.SectorChainPreCommitFailed: pushing message to mpool: add locked failed: too many pending messages for actor

and at this moment , the mpool if full for. t02520.

# lotus mpool pending | grep  t02520  | wc -l
1000

Expected behavior
t02520 which can win block can package his own messages and the others which win the block also can package t02520

Screenshots

*jsonrpc.respError=&{1 add locked failed: too many pending messages for actor}
# lotus mpool pending | grep  t02520  | wc -l
1000

Version (run lotus version):
v0.6.2

Additional context
I think the limit is have a problem, I suggest to intercept part of the messages (if chain.gasLimit > gaslimit) and push them into the message pool

		if chain.gasLimit <= gasLimit {
			gasLimit -= chain.gasLimit
			result = append(result, chain.msgs...)
			continue
		}

https://github.com/filecoin-project/lotus/blob/master/chain/messagepool/selection.go#L569-L573

@whyrusleeping @jbenet

@vyzo
Copy link
Contributor

vyzo commented Sep 10, 2020

this is a spam control limit being hit; we can relax the limit for local pushes.

@vyzo
Copy link
Contributor

vyzo commented Sep 10, 2020

Note that this has nothing to do with selection, it's a preemptive check that forbids the message from entering the message pool.

@waynewyang waynewyang changed the title message selection issue message pool issue Sep 10, 2020
@waynewyang
Copy link
Contributor Author

I've changed the issue title to "mpool issue",the outage test is very useful~

@vyzo
Copy link
Contributor

vyzo commented Sep 10, 2020

fix in #3724.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants