I'm also seeing this error message on a Raspberry PI although it occurs while streaming.
grpc::Version() returns 1.11.0 which is currently the most recent. On Thursday, 8 June 2017 21:11:22 UTC+2, [email protected] wrote: > > Hello, > > I am working a grpc client application (C++) to talk to grpc server on > remote: > > 1. First I use grpc::CreateChannel(...) to create a new channel instance > and it is successful: > > auto spChannel = grpc::CreateChannel("unix:/tmp/test_sock", > grpc::InsecureChannelCredentials()); > > 2. Then I check channel state: > > auto chanState = spChannel->GetState(false); > if (chanState == GRPC_CHANNEL_IDLE) > { > spChannel->GetState(true); // this will trigger connect to server > } > > 3. It could be server side is not ready yet, as such the connect would > fail. Then I remove old channel and > create a new one in step 1). > > spChannel = grpc::CreateChannel("unix:/tmp/test_sock", > grpc::InsecureChannelCredentials()); > > 4. Repeat step 2) - 3) until server is up (backoff timing is omitted). > > The logic above works without problem when server comes up later. However, > there is an issue when channel instance > is destroyed: the file descriptor id associated with channel is not freed. > Let's say if server comes up in a long time, the following complaint > from grpc lib tells us that no file description id available eventually: > > Jun 08 04:00:28 conn[25285]: E0608 04:00:28.076832140 25285 > ev_epoll_linux.c:1825] add_poll_object: {" > > created":"@1496894428.076821026","description":"polling_island_create","file":"src/core/lib/iomgr/ev_epoll_linux.c","file_line":284, > "referenced_errors":[{"created":"@1496894428.076819933","description":"OS > Error","errno":24,"file":"src/core/lib/iomgr/ev_epoll_linu > x.c","file_line":561,"os_error":"Too many open > files","syscall":"epoll_create1"}]}{quote} > > Tracing code to src/core/lib/iomgr/ev_epoll_linux.c, the function > polling_island_create() is the one to create file descriptor id (epoll_id). > However, the polling_island_delete(...) should be called when channel is > destroyed as well. Otherwise, the file descriptor ids will be > leaked and led to the above error. > > Has anyone seen this ? Or I didn't use the grpc channel properly ? > > Thanks, > > Haiyang Yin > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/dc17eb17-687e-4043-a861-eb703e89b763%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
