redis / hiredis

Minimalistic C client for Redis >= 1.2
BSD 3-Clause "New" or "Revised" License
6.15k stars 1.8k forks source link

[warn] epoll_wait: Function not implemented #1243

Closed Rsaliu closed 6 months ago

Rsaliu commented 6 months ago

@michael-grunder

I encounter this issue when using hiredis on arm64 ubuntu. Any ideas how to resolve.

PS: I have confirmed that CONFIG_EPOLL is enabled from kernel.

michael-grunder commented 6 months ago

It looks like epoll_wait is deprecated in some kernels in favor of epoll_pwait. That's what I can gather doing a quick search at least.

I'll take a look tomorrow morning at what our options are. Can you post the exact kernel you're running?

Edit: Also just generally more info about exactly where you are seeing this error message would be helpful. Do you see it in redisContext->err? We don't use epoll directly so identifying exactly where it's occurring would be useful.

Rsaliu commented 6 months ago

Thanks for your response @michael-grunder .

kernel version is: 4.9

I can't pin-point the exact point causing the warning but from my investigation, it's happening somewhere in hiredis_ipc/third-party/event/event.c, in function event_base_loop.

I hope this helps

michael-grunder commented 6 months ago

I don't know what hiredis_ipc/third-party/event/event.c is but it's not part of hiredis.

event_base_loop is in libevent so I don't actually think this error has anything to do with hiredis but is rather a problem happening in libevent.

Rsaliu commented 6 months ago

@michael-grunder Thanks for your response.

It was my bad. I somehow mixed up the file path. Issue is indeed with libevent. had to run the app by using.

EVENT_NOEPOLL=1 ./app

it works now.

Just putting it here, in case anyone face this issue.