Problem in the runtime habitat_butterfly::server


#1

i received a problem today.
ERROR 2018-07-06T04:52:04Z: habitat_butterfly::server::inbound: UDP Receive error: Interrupted system call (os error 4)
anyone help me?


#2

@gregorio let’s see if we can get you sorted out. First, would you be able to share some more context around -

  1. What version of the habitat supervisor is this running under?
  2. Where are you seeing this error?
  3. What operating system are you running on?

#3

I’m using the hab v0.57.0 and SO is a Centos 7.4. I see this error in runtime of application.


#4

Hmm do you have iptables or ipfw blocking UDP traffic or anything like that? Is this sup running in a ring?


#5

The iptables rules are generation by kubernets cluster in the openshift. I m not use the sup ring.


#6

Hmm ok I should clarify - this is a single instance running on kubernetes that doesnt talk to any services outside of itself?


#7

Nope, this application talk with a service external only. This application is a frontier of a service external.


#8

Hi @gregorio, are you still seeing this issue?


#9

Yes i not found the solution. :frowning:


#10

Do you see this issue constantly? Can you provide more logs? If you launch the supervisor with the following environment variable set, it will increase the logging level and that may provide additional insight:

RUST_LOG=debug,tokio_core::reactor=info

Also, can you provide as much detail as possible about how you’re running things? What packages are you running? What commands are you using to start them?

In the meantime, I’ll look into the code and see if I can determine what might cause that error.


#11

It seems like the only place you’d get this error is here, in the loop that processes inbound pings for butterfly when we call recv_from.

That recv_from is called repeatedly in normal operation and It’s not clear to me whether you’re getting the

UDP Receive error: Interrupted system call (os error 4)

every time or not. If it’s rare, I don’t think it’s anything to worry about. If it’s happening all the time, that seems strange. If there were a problem binding that port, the supervisor would exit immediately with something like

hab-sup(ER)[components/sup/src/error.rs:449:9]: Butterfly error: Cannot bind to port: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }

And if traffic couldn’t be received due to a firewall issue, I don’t think that’s the error that you would get.

In any case, if you can provide some additional information, I’ll be able to provide more assistance.