Commit Graph

1744 Commits

Author SHA1 Message Date
Christine Caulfield
8cbfeec9f4 test: Disable test_max_dgram_size() test as it often breaks on CI
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-05-23 14:38:34 +01:00
Christine Caulfield
9123d9a242 tests: Fix signal handling in check_ipc.c
Also return pid_t from run_ipc_server()

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-05-23 14:11:01 +01:00
Christine Caulfield
608de6d59a lib: update library version for upcoming 1.0.2 release
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-05-19 14:59:20 +01:00
Jan Pokorný
e7e6961a66
build: follow-up on introducing custom m4 macros
Various "configure" commits by wferi recently introduced new
compat/custom m4 macro files in m4 directory, which itself was,
so far, assumed ephemeral (not strictly needed for reproducing
the build successfully, i.e., bits that can be completely purged
when cutting down the project files to the bone).  Apparently,
this assumption no longer holds so several places need to be
adapted.

Amonst others, m4 directory no longer needs to be reinsured in
autogen.sh, and special care must be taken with .gitignore
and maintainer-clean-local target of the main Makafile.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2017-05-19 15:32:55 +02:00
Chrissie Caulfield
f7ec9a055c ipc: fix compile warning on non-Linux platforms (#252)
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-05-18 16:16:22 +01:00
jonesmz
a95b81ba2b Require c99 language support or newer (#251) 2017-05-18 13:44:01 +01:00
Jan Pokorný
41ae3e1267 Memleak fixes (#194)
* memleak: ipc_socket: properly dispose local-scoped strndup values

Leaking memory was only possible when using filesystem sockets (see
use_filesystem_sockets function) and either:
- client is deliberately disconnecting from a server (continued run
  imposes a risk of exhausting memory)
- server is deliberately disconnecting from its client (ditto, but
  more substantial risk due to the common shared-resource nature
  of the server)

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>

* memleak: ipc_socket: properly dispose inter-function strdup values

Leaking memory was only possible when the server accepted the client,
but didn't get (or was too shy) to talk to it prior to proceeding with
a disconnect.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>

* ipc_socket: care to explain what's going on with file name inference

Related to the code parts at hand, there was an investigation/fix in
the past, initiated by "make check" failure on FreeBSD 9 [rhbz#1256701].
Unfortunately, not only the magic constant being modified was not
explained in 1908e6c, but (one can derive because of a lack of solid
background of what's going on here, which might have caused that),
it was modified incorrectly at one instance (see also [PR165 comment]),
which was then reinstated in 7ebcb3d.

So, finally de-mystify those magic constants.  Also break the symmetry
between the client/server further with depending on the canonical
"request socket" alias at the server side (the former worked equally but
it was unnecessarily confusing and there's a risk this artificial alias
will get removed in the future).

[rhbz#1256701] https://bugzilla.redhat.com/1256701
[PR165 comment] https://github.com/ClusterLabs/libqb/issues/165#issuecomment-142949541

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2017-05-18 11:29:15 +01:00
Christine Caulfield
536b4c25ed doc: Clarify IPC caution text
It was not clear to non-native English speakers.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed by: Jan Pokorný <jpokorny@redhat.com>
2017-05-02 10:29:44 +01:00
Chrissie Caulfield
41a24a3df7 Allow Linux to use filesystem sockets (#248)
* IPC: Allow filesystem sockets to be chosen at run-time on Linux

Most of this patch came from Andrew Beekhof.
Keep a global variable that decides whether or not to use filesystem sockets
or abstract sockets for IPC connections. This variable is set by the presence of a file (default /etc/libqb/force-filesystem-sockets).

* tests: Fix test_ipcc_truncate_when_unlink_fails_shm test using FS sockets

When using filesystem sockets, the
test_ipcc_truncate_when_unlink_fails_shm test always fails, this was
because the unlink() call is wrapped to fail and so it never cleans up
the old version of the socket.
The fix is to preemptively remove the file before unlink gets wrapped.

* doc: Explain the force-filesystem-sockets option

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-04-28 16:13:02 +01:00
Chrissie Caulfield
63d79c93cc Merge pull request #250 from jnpkrn/test-ipc-random-name
test: Fix random number generation in IPC tests
2017-04-28 14:47:19 +01:00
Jan Pokorný
d69cc7b3f6
test: Fix random number generation in IPC tests
The sockets are named using a random() suffix in at attempt to isolate
concurrent test.  However random() always returns the same random number
by design ... unless pre-seeded with some value being unique enough for
the particular execution.

Borrowing the most of the above message from original "srandom" fix by
Chrissie who also discovered this issue (nice!), I thought it would be
more viable if we encoded such "unique enough" variables directly to
IPC name being generated, not relying on pseudorandom generators in any
way.  Hence this other fix.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2017-04-28 14:55:06 +02:00
Christine Caulfield
f38a877889 doc: Remove unclear part of the clarification on IPC threading.
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-04-05 09:49:45 +01:00
Christine Caulfield
60122a4a4e doc: clarify thread-safety (or not) in IPC doc
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-03-24 13:44:17 +00:00
Christine Caulfield
59eacf07dd loop: Fix splint error
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-03-06 14:31:57 +00:00
Christine Caulfield
e336b716cc loop: Also set signals changed in qb_loop_signal_mod() back to SIG_DFL
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-02-24 16:36:35 +00:00
Christine Caulfield
c751993c90 loop: don't override external signal handlers
qb_loop_signal_add() used to set any signals it wasn't managing
back to SIG_DFL. This is unfriendly behaviour in a library.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Pokorný <jpokorny@redhat.com>
2017-02-24 16:23:43 +00:00
Christine Caulfield
afdff97f1a [tests] Fix qb_rb_chunk_peek test so it's consistent with qb_rb_read
Now that the library code is too.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-01-31 10:41:29 +00:00
Christine Caulfield
a7faca1682 [ringbuffer] Return error from peek if RB is corrupted.
This should prevent libqb from looping in the server if the
ringbuffer gets corrupted. Instead the client will be disconnected.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2017-01-31 09:47:27 +00:00
Chrissie Caulfield
75345a0a23 Merge pull request #242 from jnpkrn/travis-issue-234
CI: travis: fix du -> df and capture it also directly from test
2016-12-16 15:16:29 +00:00
Jan Pokorný
991ef77d11
build: tito: unify custom.py with pacemaker's version 2016-12-16 15:48:25 +01:00
Jan Pokorný
524042d797
CI: travis: fix du -> df and capture it also directly from test 2016-12-16 15:48:10 +01:00
Chrissie Caulfield
5a54a51883 Merge pull request #241 from jnpkrn/PR240-addendum
PR #240 + addendum (drop syslog-tests opt-in switch)
2016-12-16 14:21:52 +00:00
Jan Pokorný
602d04dacf
build: drop allegedly no longer intrusive syslog-tests opt-in switch
The intention behind enabling the syslog tests on demand (642f74d) was
to tread cautiously as libtool used to alert that something controversial
is going on:

$ ./autogen.sh && ./configure --enable-syslog-tests && make check
> ...
> *** Warning: Linking the executable log.test against the loadable module
> *** _syslog_override.so is not portable!
> ...

owing to the fact that _syslog_override.so is being linked (through
libtool) with LDFLAGS=-module.

In fact, the issue did go away with a fix to the "make install" process
(ebcff54) for which _syslog_override.so* files were being picked
undesirably prior to the fix, which manifested itself also on
"make rpm" (hence the respective commit message):

> RPM build errors:
>     Installed (but unpackaged) file(s) found:
>    /usr/lib64/_syslog_override.so
>    /usr/lib64/_syslog_override.so.0
>    /usr/lib64/_syslog_override.so.0.0.0

The explanation for the secondary positive effect on the mentioned
libtool's warning going away is rather simple:
"lib" prefix switches the expectations about the result as a library
(also due to "libdir" destination) rather than as an executable object.
Change like that ensures the result is what libtool's manual calls
"dynamic module that can be opened by lt_dlopen" rather than "runtime
library that cannot" in the context of Mac OS X, which was likely the
cause of the portability warning.
(https://www.gnu.org/software/libtool/manual/libtool.html#FOOT10)

And because the tests themselves are run through the libtool wrapper
scripts capable of relinking and other magic

What libtool manual has to say on this topic:
> Note that libtool modules don’t need to have a "lib" prefix. However,
> Automake 1.4 or higher is required to build such modules.
referring to version released 15+ years back, which is assumed anyway.
(https://www.gnu.org/software/libtool/manual/libtool.html#Modules-for-libltdl)

* * *

That being said, there's now no longer a reason to have "syslog-tests"
enablement conditionalized (no longer supposed intrusive), hence enable
them unconditionally along the other libcheck-based tests
-- whenever libcheck is detected.

This changeset also drops any trace of --enable-syslog-tests switch
in various places using that (spec file, Travis CI configuration)
making for a complete vaporizatio of this choice.
2016-12-12 12:18:37 +01:00
Ferenc Wágner
8fad8acb67 configure: restrict nsl lib to where it's actually needed 2016-12-12 11:47:21 +01:00
Ferenc Wágner
1a9b4128e4 configure: restrict socket lib to where it's actually needed 2016-12-12 11:47:21 +01:00
Ferenc Wágner
cb5ee921c0 configure: restrict pthreads to where it's actually needed
mq_open() is no longer relevant beyond 70a9623 (Remove message queues).
2016-12-12 11:46:13 +01:00
Ferenc Wágner
56754d0509 configure: restrict -ldl to where it's actually needed
This reduces overlinking of qb-blackbox.  Being a seldom used executable,
the gains are mostly theoretical, but at least this silences warnings
from some QA tools.
2016-12-08 14:14:57 +01:00
Ferenc Wágner
64371306a6 configure: LTLIBOBJS is also a Make variable
So let's use the more friendly syntax.
2016-12-08 14:14:57 +01:00
Ferenc Wágner
ff7a3f4047 configure: help string cleanup
The [ default="no" ] branches were sense- and (mostly) harmless.
2016-12-08 14:11:28 +01:00
Ferenc Wágner
27d9b3b829 Fix typos: synchonization -> synchronization, paramaters -> parameters 2016-12-08 14:10:55 +01:00
Ferenc Wágner
1bf4d8678a Update changelog for 1.0.1-1 release 2016-12-07 14:55:45 +01:00
Ferenc Wágner
bcbb1e7c7d Restrict libraries to where they're actually needed 2016-12-07 14:54:32 +01:00
Ferenc Wágner
eaeee6dfcd Test the patches meant for upstream inclusion 2016-12-07 14:54:04 +01:00
Ferenc Wágner
8c933e327c Fix the overlinking in the upstream source 2016-12-05 13:30:34 +01:00
Ferenc Wágner
6585a49045 Extend symbols file 2016-12-05 13:30:34 +01:00
Ferenc Wágner
dadbfcabc9 New patches fixing typos 2016-12-05 13:30:34 +01:00
Ferenc Wágner
243c6a73cf Migrate to my Debian address 2016-12-04 22:22:16 +01:00
Ferenc Wágner
1b932bf0c9 Delete upstreamed patches, refresh the rest 2016-12-04 21:23:23 +01:00
Ferenc Wágner
ea68808d27 Merge tag 'upstream/1.0.1' into debian/master
Upstream version 1.0.1
2016-12-04 20:53:39 +01:00
Ferenc Wágner
e0550bfe40 Imported Upstream version 1.0.1 2016-12-04 20:53:34 +01:00
Chrissie Caulfield
52db4997d7 Merge pull request #238 from jnpkrn/travis-issue-234
Continue with investigation of intermittent failures in Travis CI (#234)
2016-11-29 14:20:34 +00:00
Jan Pokorný
6fad6b7b2d
tests: better diagnose test_max_dgram_size test failures 2016-11-28 15:16:04 +01:00
Jan Pokorný
f321df7498
CI: travis: fix dh -> du + add "lsblk -f" diagnostics 2016-11-28 15:14:27 +01:00
Chrissie Caulfield
d03b718021 Merge pull request #235 from jnpkrn/travis-issue-234
CI: make travis watch for the issue #234
2016-11-24 15:18:15 +00:00
Jan Pokorný
e702848b0d
CI: make travis watch for the issue #234 2016-11-24 16:05:25 +01:00
Christine Caulfield
0a329683a7 version: Update version for 1.0.1 release 2016-11-24 09:44:27 +00:00
Chrissie Caulfield
3ca533b44e Merge pull request #233 from jnpkrn/copr-tito
build: git -> automatic COPR builds integration followup
2016-11-24 09:02:29 +00:00
Jan Pokorný
77cb88d6f8
build: tito: minor adjustments 2016-11-23 13:05:28 +01:00
Jan Pokorný
704c196426
doc: README: add a status badge+link for the COPR builds 2016-11-22 16:36:26 +01:00
Chrissie Caulfield
45712eae1b Merge pull request #232 from jnpkrn/copr-tito
build: allow for git -> automatic COPR builds integration
2016-11-22 14:27:43 +00:00