Commit Graph

656 Commits

Author SHA1 Message Date
David Vossel
5b103cd6e4 High: trie: allow modifying the trie map during the notify callback 2014-07-30 09:58:04 -05:00
David Vossel
073f927801 Low: log: return filter type enum to preserve abi compatibilty with corosync
This returns abi compatiblity with libqb v0.16.0. There was a subtle
change in behavior caused by reordering the log filter enum in
v0.17.0.
2014-07-23 14:42:27 -05:00
Fabio M. Di Nitto
bafe834cbb Low: build: cleanup autogen warning to not overrride LDFLAGS
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
2014-07-23 11:43:52 -05:00
David Vossel
01e43ead81 Merge pull request #120 from AnchorCat/shm-connect-cleanup
ipc_shm: fix error handling in qb_ipcs_shm_connect()
2014-06-19 14:41:46 -05:00
David Vossel
80fd68c263 Merge pull request #121 from AnchorCat/epoll
epoll: don't miss poll events under high load
2014-06-19 14:33:59 -05:00
Michael Chapman
2a06ffecde epoll: don't miss poll events under high load
If multiple epoll sources generate events simultaneously, it is possible
for more jobs to be added to particular priority level than will be
handled in one go by qb_loop_run_level(). If one of these epoll sources
gains a new event (say, by switching from "readable" to "readable and
writeable"), then this new event would be missed.

To fix this, merge new epoll events into revents regardless of whether
the job is on the joblist. When the job is dispatched, revents will be
cleared, or the epoll source will be deleted entirely.
2014-06-05 15:25:26 +10:00
Michael Chapman
0cdda23d1e ipc_shm: fix error handling in qb_ipcs_shm_connect()
The request and response SHM segments were being closed under the wrong
labels, and the event SHM segment wasn't being cleaned up at all.
2014-06-05 15:14:11 +10:00
Michael Chapman
fad9ce01a0 ringbuffer: fix size in qb_rb_create_from_file()
qb_rb_open() expects the size field to represent the maximum chunk size.
It adds QB_RB_CHUNK_MARGIN + 1 and rounds up to the page size to
determine the ringbuffer's total size. When creating a ringbuffer from a
file we must compensate by subtracting this amount from the file's size.
2014-06-05 14:36:56 +10:00
Michael Chapman
edd2eec16c ringbuffer: fix qb_rb_open_2() debug format string
qb_log_target_formats() does not support formatting size_t values with
%zd.  Use %ld to format them as long integers instead.
2014-06-05 14:36:43 +10:00
David Vossel
e0bca21e7a Fix: trie: fixes regression caused by ref count refactoring 2014-05-09 11:14:48 -04:00
David Vossel
76b693b8f3 Low: trie: cleanup ref count logic in trie_notify_del 2014-04-04 13:14:51 -05:00
David Vossel
ad248a733e Low: ipcs: Cleanup unnecessary reference counting 2014-04-04 12:12:58 -05:00
David Vossel
08356b84fa Fix: ipcc: Properly timeout during recv when timeout value is provided 2014-03-12 14:05:13 -04:00
David Vossel
5459350ff0 Merge pull request #113 from inouekazu/log_eagain
Low: ipc_setup.c: Add log for EAGAIN
2014-03-05 16:11:14 -06:00
David Vossel
39ed456da8 Low: build: Don't allow Bsymbolic-functions LDFLAG to be used, it breaks unit tests 2014-02-25 15:17:16 -06:00
Kazunori INOUE
f5c8c94a5f Low: ipc_setup.c: Add log for EAGAIN 2014-02-20 18:07:09 +09:00
David Vossel
532acdffa4 Bump version to 0.17.0 2014-02-19 10:33:30 -06:00
David Vossel
334762c90e Low: ipc_socket: further optimize max msg size calculations for fbsd portability tests 2014-02-11 11:19:57 -06:00
David Vossel
9e6cacd4e6 Low: ipc_socket: Allow socket max msg size to be calculated more accurately 2014-02-10 16:55:36 -06:00
David Vossel
aa24dd848a Fix: fixes travis compile time error 2014-02-05 10:21:12 -06:00
David Vossel
6ffa3147b8 Merge pull request #107 from davidvossel/ref_count_cleanup
High: ipcs: Prevent ipc server use after free.
2014-02-05 08:35:56 -06:00
David Vossel
6a2ff420e1 High: ipcs: Prevent ipc server use after free.
The ipc server registers the bind socket to
the poll loop in order to be alerted to new
connection requests. Upon shutdown, the ipc server
does not remove this poll entry. This patch fixes
this use after free.
2014-01-17 11:22:27 -06:00
David Vossel
d9706f7561 Merge pull request #106 from davidvossel/ref_count_cleanup
reference count fixes
2014-01-16 07:26:42 -08:00
David Vossel
58c0c90979 Low: ipc: Remove ipc connection reference given to dispatch functions
We don't need to give the dispatch_add callback a reference
since the dispatch_del callback must occur before the
connection is destroyed. This extra reference counting
causes unnecessary complexity.
2014-01-15 11:44:44 -06:00
David Vossel
c89b11c6b5 High: ipc: Fixes memory leak in server connection accept when client partially connects 2014-01-15 11:43:46 -06:00
Gao,Yan
5b8045b76d IPC: Increase the listen backlog of IPC server 2014-01-08 13:29:51 +08:00
David Vossel
c3b41435b4 Merge pull request #99 from davidvossel/regex_logger
Regex logging filters
2013-11-18 10:20:03 -08:00
David Vossel
b05ca12431 Merge pull request #98 from davidvossel/server_side_buf_limit
Server side max buffer limit
2013-11-18 09:28:53 -08:00
David Vossel
8bd36d3e5c Feature: New api function to retrieve client buffer size
When server side buffer limits are in use, this is
necessary to determine the buffer size the server
is enforcing after the client connection is established.
2013-11-18 16:53:39 -06:00
David Vossel
9f6e4bb52d Feature: Enforce buffer size limits on the server side 2013-11-18 16:51:31 -06:00
David Vossel
bfafdaeaf5 Feature: Filter logs using regex patter on function, format, or filename 2013-11-15 22:30:00 -06:00
Jan Friesse
81ca7d30de ipc_setup: Set SO_PASSCRED on listener socket
This is needed, because newer kernels doesn't correctly support setting
SO_PASSCRED on sockets returned by accept call, but socket option must
be set on server socket (before accept call).

For more details, see:
http://patchwork.ozlabs.org/patch/284366/

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2013-10-21 17:19:59 +02:00
David Vossel
9abb68637d Fix: log: Filtering by function and file must match exactly, no substring matches 2013-10-17 21:44:12 -05:00
David Vossel
00082df49f Low: blackbox: Abort blackbox logging on ringbuffer overwrite reclaim error 2013-10-08 21:59:59 -05:00
David Vossel
2b11b783c7 High: ipcs: Api function allowing server to retrieve client connection's ipc buffer size 2013-10-08 17:11:53 -05:00
David Vossel
47c690dbbc Low: ringbuffer: Abort during chunk reclaim if OVERWRITE flag is set and reclaim fails. 2013-10-03 20:40:12 -05:00
David Vossel
9582a4c60a High: blackbox: unique blackbox ringbuffer files per pid 2013-10-03 19:24:41 -05:00
David Vossel
b327dbec73 Low: ipc_socket: Fixes fd leak in socket ipc client disconnection 2013-09-16 18:38:20 -05:00
Michael van der Westhuizen
57e630f63f Use sizeof to get the correct size of the sockaddr_un sun_path member in a portable way. Fixes corosync on Mac OS X. 2013-09-03 08:44:15 +02:00
David Vossel
1bf8856b00 Merge pull request #87 from anchor/del-during-dispatch-v2
Avoid double-decrement of level->todo
2013-08-20 06:02:00 -07:00
David Vossel
67f63be685 Detect the max signal value that can be used using NSIG macro 2013-08-19 20:44:10 -05:00
Michael Chapman
580ca05de3 Avoid double-decrement of level->todo
If a job's dispatch function deletes the job, we may end up decrementing
the job queue's todo count twice. Verify that the job is on the queue
before decrementing.
2013-08-20 09:30:16 +10:00
Michael van der Westhuizen
4509500e5e Use a system-supplied maximum number of signals on Mac OS X. This gets SIGUSR2 (#31) working. 2013-08-11 21:51:17 +02:00
David Vossel
75f7ed3737 Bump version to 0.16.0 ... do not use version 0.15.0
The use of version-info conflicted with the naming
convention used to represent libqb version numbers. Because
of this the shared library file used for release 0.15.0
did not properly match the release version.  From now on
the version number will be manually set to guarantee consistency
between .so file and release version.
2013-07-25 13:12:02 -05:00
David Vossel
986b92d391 Bump the version to 0.15.0 2013-07-24 18:04:39 -05:00
David Vossel
2a0a0790e9 Low: ipc_socket: Output send event failure as debug instead of error 2013-07-23 22:37:08 -05:00
David Vossel
54ef796126 High: ipc_socket.c: Detect EOF connection on connection STREAM socket 2013-07-23 20:01:41 -05:00
David Vossel
e6c99f6280 Merge pull request #81 from davidvossel/dgram_max_msg
Added ability to estimate kernel's actual max dgram buffer size in a portable way.
2013-07-22 14:04:52 -07:00
David Vossel
a881c14086 Low: ipc_socket.c: Handle the unlikely event of an EAGAIN or EINTR during dgram max size detection 2013-07-22 20:29:24 -05:00
David Vossel
c73f2aa5cc Fixes sem leak 2013-07-22 18:21:23 -05:00