Hello community, here is the log from the commit of package libqb for openSUSE:Factory checked in at 2014-08-20 17:53:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqb (Old) and /work/SRC/openSUSE:Factory/.libqb.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqb" Changes: -------- --- /work/SRC/openSUSE:Factory/libqb/libqb.changes 2014-03-31 20:43:21.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libqb.new/libqb.changes 2014-08-20 17:53:58.000000000 +0200 @@ -1,0 +2,16 @@ +Mon Jul 28 05:57:43 UTC 2014 - [email protected] + +- log: return filter type enum to preserve abi compatibilty with corosync +- Upstream version cs: e5b8950863b92b314675ba0cbba13f00b8b77c52 + +------------------------------------------------------------------- +Tue Jul 1 09:08:05 UTC 2014 - [email protected] + +- epoll: don't miss poll events under high load +- ipc_shm: fix error handling in qb_ipcs_shm_connect() +- ringbuffer: fix size in qb_rb_create_from_file() +- trie: cleanup ref count logic in trie_notify_del +- ipcs: Cleanup unnecessary reference counting +- Upstream version cs: b103e1ae61f6fc288cfb228344f24508adaaba9a + +------------------------------------------------------------------- Old: ---- libqb-0.17.0+git20140312.c6f4fcd.tar.bz2 New: ---- libqb-0.17.0+git20140723.e5b8950.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqb.spec ++++++ --- /var/tmp/diff_new_pack.hYUOxn/_old 2014-08-20 17:53:59.000000000 +0200 +++ /var/tmp/diff_new_pack.hYUOxn/_new 2014-08-20 17:53:59.000000000 +0200 @@ -17,13 +17,14 @@ Name: libqb -Version: 0.17.0+git20140312.c6f4fcd +Version: 0.17.0+git20140723.e5b8950 Release: 0 Summary: An IPC library for high performance servers License: LGPL-2.1+ Group: System/Libraries Url: https://github.com/ClusterLabs/libqb Source0: %{name}-%{version}.tar.bz2 +Source1: baselibs.conf Patch1: libqb-configure-package-version.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ _service ++++++ --- /var/tmp/diff_new_pack.hYUOxn/_old 2014-08-20 17:53:59.000000000 +0200 +++ /var/tmp/diff_new_pack.hYUOxn/_new 2014-08-20 17:53:59.000000000 +0200 @@ -11,7 +11,7 @@ <param name="version">0.17.0</param> --> <param name="versionformat">0.17.0+git%cd.%h</param> - <param name="revision">c6f4fcd778248c41e5b108159d00cf1798a296d4</param> + <param name="revision">e5b8950863b92b314675ba0cbba13f00b8b77c52</param> </service> <service name="recompress" mode="disabled"> ++++++ libqb-0.17.0+git20140312.c6f4fcd.tar.bz2 -> libqb-0.17.0+git20140723.e5b8950.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/.gitignore new/libqb-0.17.0+git20140723.e5b8950/.gitignore --- old/libqb-0.17.0+git20140312.c6f4fcd/.gitignore 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/.gitignore 2014-07-28 08:07:49.000000000 +0200 @@ -26,3 +26,4 @@ abi_dumps TAGS *~ +test-driver diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/Makefile.am new/libqb-0.17.0+git20140723.e5b8950/Makefile.am --- old/libqb-0.17.0+git20140312.c6f4fcd/Makefile.am 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/Makefile.am 2014-07-28 08:07:49.000000000 +0200 @@ -34,7 +34,7 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \ config.guess config.sub missing install-sh \ autoheader automake autoconf libtool libtoolize \ - ltmain.sh compile + ltmain.sh compile build-aux/test-driver ACLOCAL_AMFLAGS = -I m4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/check new/libqb-0.17.0+git20140723.e5b8950/check --- old/libqb-0.17.0+git20140312.c6f4fcd/check 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/check 2014-07-28 08:07:49.000000000 +0200 @@ -192,7 +192,7 @@ } check_clang() { - if [ ! -f /usr/lib64/clang-analyzer/scan-build/ccc-analyzer ] + if [ ! -f /usr/libexec/clang-analyzer/scan-build/ccc-analyzer ] then echo try installing clang-analyze exit 1 @@ -202,8 +202,8 @@ make clean ./configure \ - CC=/usr/lib64/clang-analyzer/scan-build/ccc-analyzer \ - CXX=/usr/lib64/clang-analyzer/scan-build/c++-analyzer + CC=/usr/libexec/clang-analyzer/scan-build/ccc-analyzer \ + CXX=/usr/libexec/clang-analyzer/scan-build/c++-analyzer make check } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/examples/ipcclient.c new/libqb-0.17.0+git20140723.e5b8950/examples/ipcclient.c --- old/libqb-0.17.0+git20140312.c6f4fcd/examples/ipcclient.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/examples/ipcclient.c 2014-07-28 08:07:49.000000000 +0200 @@ -192,7 +192,7 @@ main(int argc, char *argv[]) { qb_ipcc_connection_t *conn; - const char *options = "eb"; + const char *options = "ebh"; int32_t opt; while ((opt = getopt(argc, argv, options)) != -1) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/include/qb/qblog.h new/libqb-0.17.0+git20140723.e5b8950/include/qb/qblog.h --- old/libqb-0.17.0+git20140312.c6f4fcd/include/qb/qblog.h 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/include/qb/qblog.h 2014-07-28 08:07:49.000000000 +0200 @@ -132,9 +132,14 @@ * QB_LOG_FILTER_FORMAT, "ringbuffer", LOG_TRACE); * @endcode * - * @par Threaded logging. - * To achieve non-blocking logging you can use threaded logging. So any - * calls to write() or syslog() will not hold up your program. + * @par Thread safe non-blocking logging. + * Logging is only thread safe when threaded logging is in use. If you plan + * on logging from multiple threads, you must initialize libqb's logger thread + * and use qg_log_filter_ctl to set the QB_LOG_CONF_THREADED flag on all the + * logging targets in use. + * + * To achieve non-blocking logging you can use threaded logging as well + * So any calls to write() or syslog() will not hold up your program. * * Threaded logging use: * @code @@ -403,12 +408,12 @@ }; enum qb_log_filter_type { - QB_LOG_FILTER_FILE_REGEX, - QB_LOG_FILTER_FUNCTION_REGEX, - QB_LOG_FILTER_FORMAT_REGEX, QB_LOG_FILTER_FILE, QB_LOG_FILTER_FUNCTION, QB_LOG_FILTER_FORMAT, + QB_LOG_FILTER_FILE_REGEX, + QB_LOG_FILTER_FUNCTION_REGEX, + QB_LOG_FILTER_FORMAT_REGEX, }; enum qb_log_filter_conf { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/Makefile.am new/libqb-0.17.0+git20140723.e5b8950/lib/Makefile.am --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/Makefile.am 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/Makefile.am 2014-07-28 08:07:49.000000000 +0200 @@ -42,7 +42,7 @@ libqb_la_SOURCES = $(source_to_lint) unix.c libqb_la_LIBADD = @LTLIBOBJS@ -LDFLAGS = $(LDFLAGS_COPY:-Bsymbolic-functions=) +AM_LDFLAGS = $(LDFLAGS_COPY:-Bsymbolic-functions=) if HAVE_SEM_TIMEDWAIT else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/ipc_shm.c new/libqb-0.17.0+git20140723.e5b8950/lib/ipc_shm.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/ipc_shm.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/ipc_shm.c 2014-07-28 08:07:49.000000000 +0200 @@ -326,17 +326,20 @@ qb_util_log(LOG_ERR, "Error adding socket to mainloop (%s).", c->description); - goto cleanup_request_response; + goto cleanup_request_response_event; } r->hdr.error = 0; return 0; +cleanup_request_response_event: + qb_rb_close(c->event.u.shm.rb); + cleanup_request_response: - qb_rb_close(c->request.u.shm.rb); + qb_rb_close(c->response.u.shm.rb); cleanup_request: - qb_rb_close(c->response.u.shm.rb); + qb_rb_close(c->request.u.shm.rb); cleanup: r->hdr.error = res; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/ipcs.c new/libqb-0.17.0+git20140723.e5b8950/lib/ipcs.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/ipcs.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/ipcs.c 2014-07-28 08:07:49.000000000 +0200 @@ -670,8 +670,6 @@ ssize_t size; struct qb_ipc_request_header *hdr; - qb_ipcs_connection_ref(c); - if (c->service->funcs.peek && c->service->funcs.reclaim) { size = c->service->funcs.peek(&c->request, (void **)&hdr, ms_timeout); @@ -713,7 +711,6 @@ } cleanup: - qb_ipcs_connection_unref(c); return res; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/log.c new/libqb-0.17.0+git20140723.e5b8950/lib/log.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/log.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/log.c 2014-07-28 08:07:49.000000000 +0200 @@ -683,7 +683,7 @@ if (text == NULL || low_priority < high_priority || - type > QB_LOG_FILTER_FORMAT || + type > QB_LOG_FILTER_FORMAT_REGEX || c > QB_LOG_TAG_CLEAR_ALL) { return -EINVAL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/loop_poll_epoll.c new/libqb-0.17.0+git20140723.e5b8950/lib/loop_poll_epoll.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/loop_poll_epoll.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/loop_poll_epoll.c 2014-07-28 08:07:49.000000000 +0200 @@ -178,16 +178,12 @@ */ continue; } - if (events[i].events == pe->ufd.revents || - pe->state == QB_POLL_ENTRY_JOBLIST) { - /* - * entry already in the job queue. - */ - continue; - } - pe->ufd.revents = _epoll_to_poll_event_(events[i].events); - new_jobs += pe->add_to_jobs(src->l, pe); + pe->ufd.revents |= _epoll_to_poll_event_(events[i].events); + + if (pe->state != QB_POLL_ENTRY_JOBLIST) { + new_jobs += pe->add_to_jobs(src->l, pe); + } } return new_jobs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/ringbuffer.c new/libqb-0.17.0+git20140723.e5b8950/lib/ringbuffer.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/ringbuffer.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/ringbuffer.c 2014-07-28 08:07:49.000000000 +0200 @@ -232,7 +232,7 @@ } qb_util_log(LOG_DEBUG, - "shm size:%zd; real_size:%zd; rb->word_size:%d", size, + "shm size:%ld; real_size:%ld; rb->word_size:%d", size, real_size, rb->shared_hdr->word_size); /* this function closes fd_data */ @@ -886,7 +886,11 @@ * 6. data */ n_required = (word_size * sizeof(uint32_t)); - rb = qb_rb_open("create_from_file", n_required, + + /* + * qb_rb_open adds QB_RB_CHUNK_MARGIN + 1 to the requested size. + */ + rb = qb_rb_open("create_from_file", n_required - (QB_RB_CHUNK_MARGIN + 1), QB_RB_FLAG_CREATE | QB_RB_FLAG_NO_SEMAPHORE, 0); if (rb == NULL) { return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.17.0+git20140312.c6f4fcd/lib/trie.c new/libqb-0.17.0+git20140723.e5b8950/lib/trie.c --- old/libqb-0.17.0+git20140312.c6f4fcd/lib/trie.c 2014-03-21 07:24:42.000000000 +0100 +++ new/libqb-0.17.0+git20140723.e5b8950/lib/trie.c 2014-07-28 08:07:49.000000000 +0200 @@ -663,7 +663,6 @@ int32_t cmp_userdata, void *user_data) { struct trie *t = (struct trie *)m; - struct qb_map_notifier *f; struct trie_node *n; struct qb_list_head *list; struct qb_list_head *next; @@ -678,8 +677,7 @@ return -ENOENT; } qb_list_for_each_safe(list, next, &n->notifier_head) { - f = qb_list_entry(list, struct qb_map_notifier, list); - trie_notify_ref(f); + struct qb_map_notifier *f = qb_list_entry(list, struct qb_map_notifier, list); if (f->events == events && f->callback == fn) { if (cmp_userdata && (f->user_data == user_data)) { @@ -690,7 +688,7 @@ found = QB_TRUE; } } - trie_notify_deref(f); + } if (found) { trie_node_release(t, n); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
