Hi Jason,
> I'm getting the error mentioned in the subject line
> ("Operation not permitted
> (qpid/sys/epoll/EpollPoller.cpp:254)") when my c++ client
> tries to connect to the broker.
Ok; could you please report this in a jira?
(http://issues.apache.org/jira/browse/qpid)
> I dug into the source code and here's the relevant excerpt:
>
> 244 PollerPrivate() :
> 245 epollFd(::epoll_create(DefaultFds)),
> 246 isShutdown(false) {
> 247 QPID_POSIX_CHECK(epollFd);
> 248 ::sigemptyset(&sigMask);
> 249 // Add always readable fd into our set (but not
> listening to it yet)
> 250 ::epoll_event epe;
> 251 epe.events = 0;
> 252 epe.data.u64 = 0;
> 253 QPID_POSIX_CHECK(::epoll_ctl(epollFd, EPOLL_CTL_ADD,
> alwaysReadableFd, &epe));
> 254 }
>
> (I assume that the exception was actually thrown by line 253
> which might be a two line macro or something of the sort).
No, I believe the line numbers should match, so you may be looking at
source slightly different from what you're running. For now let's assume
it's just off by a line, but you should check into this further.
> I think it's relevant that I *only* get an error from
> epoll_ctl when my client is running as a daemon (but at this
> point I'm not sure why).
alwaysReadableFd is for a pipe - is there a chance you've closed it?
> Is this a known issue in the qpid c++ client with respect to
> integrating it into daemon code (or just a known issue
> period)? Any hints on where to look for conflicts between
> epoll_ctl and my daemon code ?
It's not a known problem, so please open a jira for it. Also, please be
sure you're running the same version of the code you're reading.
-Steve
--
Steve Huston, Riverace Corporation
Total Lifecycle Support for Your Networked Applications
http://www.riverace.com
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]