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

IPC subscriptions intermittently fail with double messages #6614

Closed
fselmo opened this issue Jan 24, 2024 · 0 comments · Fixed by #6658
Closed

IPC subscriptions intermittently fail with double messages #6614

fselmo opened this issue Jan 24, 2024 · 0 comments · Fixed by #6658
Assignees

Comments

@fselmo
Copy link

fselmo commented Jan 24, 2024

Description

I am seeing the same issue [over IPC] that I (and others) previously saw and reported via WebSocket connection in #6169. After subscribing via eth_subscribe to a high-throughput subscription like newPendingTransactions, after some time a message will come in with two payloads attached. This isn't able to be parsed by json and will error out.

Steps to Reproduce
In order to replicate the behavior, please provide a detailed list of steps:

  1. Connect [via IPC] to a local running instance of Nethermind and a consensus client. I am using Nethermind 1.25.3 and Lighthouse 4.4.1
  2. Subscribe via eth_subscribe to newPendingTransactions with full transactions params=("newPendingTransactions", True) using a library of your choice.

Actual behavior
After some time, and turning on debugging, I will get a JSONDecodeError and when I inspect the raw message coming back it is the same case as it was in #6169. The payload has two messages inside of it and can't be parsed.

Expected behavior
The expected behavior is that each payload is consistently one message and it appears to have been fixed [for websockets #6169] in #6210.

Screenshots

Desktop (please complete the following information):
Please provide the following information regarding your setup:

  • Operating System: Ubuntu 22.04.3 LTS
  • Version: 1.25.3
  • Installation Method: download linux-arm64
  • Consensus Client: Lighthouse 4.4.1

Additional context
Currently, I am a maintainer of web3.py and I am working on an implementation of IPC provider which is not available yet when I ran into this issue. The branch for web3.py that the screenshot is using is a WIP branch on my local fork but if it helps I can share it here. It will probably be reproducible on a JS library as the other issue was as well. As mentioned above I think that a very similar issue was happening at one point for websockets.

Logs
N/A


edit: It happens that more than double messages come in sometimes. Sometimes, multiple messages are packed together. I don't see any reason why it should stop at two if it is all running together but figured it could be a useful update to add.

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