]> granicus.if.org Git - pgbouncer/log
pgbouncer
6 years agoAdd Travis CI
Peter Eisentraut [Wed, 6 Dec 2017 21:49:46 +0000 (16:49 -0500)]
Add Travis CI

6 years agoMerge pull request #257 from eulerto/default-values-fix
Peter Eisentraut [Wed, 13 Dec 2017 18:40:52 +0000 (13:40 -0500)]
Merge pull request #257 from eulerto/default-values-fix

Use default values in config file

6 years agoUpdate libusual
Peter Eisentraut [Wed, 13 Dec 2017 17:45:25 +0000 (12:45 -0500)]
Update libusual

6 years agoUse default values in config file
Euler Taveira [Fri, 8 Dec 2017 22:00:24 +0000 (22:00 +0000)]
Use default values in config file

Instead of using arbritary values, use the default values. It is to
avoid surprises if you just remove comment character (;). I also did
some cosmetic changes. While at it, add some default information for
auth_user.

6 years agoMerge pull request #253 from eshkinkot/master
Petr Jelinek [Fri, 8 Dec 2017 17:31:32 +0000 (18:31 +0100)]
Merge pull request #253 from eshkinkot/master

Receiving NotificationResponse asynchronously should not raise warning

6 years agoReceiving NotificationResponse asynchronously should not raise warning
Sergey Burladyan [Tue, 5 Dec 2017 14:02:19 +0000 (17:02 +0300)]
Receiving NotificationResponse asynchronously should not raise warning

6 years agoImprove handling of auth_file cache and errors
Petr Jelinek [Sat, 4 Nov 2017 16:12:59 +0000 (17:12 +0100)]
Improve handling of auth_file cache and errors

Fixes #192

6 years agoImprove the hba.conf parsing issue warning
Petr Jelinek [Sat, 4 Nov 2017 15:18:20 +0000 (16:18 +0100)]
Improve the hba.conf parsing issue warning

This was added by 4f3dfc9, the wording was no ideal.

6 years agoMerge pull request #243 from gplv2/master
Petr Jelinek [Sat, 4 Nov 2017 15:17:16 +0000 (16:17 +0100)]
Merge pull request #243 from gplv2/master

add clues for sysadmin concerning HBA issues

6 years agoMerge pull request #229 from petere/crash-fix
Petr Jelinek [Sat, 4 Nov 2017 15:03:58 +0000 (16:03 +0100)]
Merge pull request #229 from petere/crash-fix

Fix crash from memory overrun

6 years agoMerge pull request #235 from petere/pgbouncer-ini-auth-type
Petr Jelinek [Sat, 4 Nov 2017 13:13:11 +0000 (14:13 +0100)]
Merge pull request #235 from petere/pgbouncer-ini-auth-type

pgbouncer.ini: Add missing auth_type's to comment

6 years agoAdd STATS_TOTALS/STATS_AVERAGES into HELP
Petr Jelinek [Sat, 4 Nov 2017 13:11:53 +0000 (14:11 +0100)]
Add STATS_TOTALS/STATS_AVERAGES into HELP

And separate the STATS* commands to it's own line.

Missed by 656844e

6 years agoMerge pull request #238 from 'tvondra/statistics-fixes'
Petr Jelinek [Sat, 4 Nov 2017 13:00:19 +0000 (14:00 +0100)]
Merge pull request #238 from 'tvondra/statistics-fixes'

Track separate stats for queries and transactions

7 years agoadd clues for sysadmin concerning HBA issues
Glenn Plas [Mon, 23 Oct 2017 10:37:32 +0000 (12:37 +0200)]
add clues for sysadmin concerning HBA issues

7 years agoAdd SHOW STATS_TOTALS / STATS_AVERAGES as admin commands
Tomas Vondra [Sun, 24 Sep 2017 16:49:35 +0000 (18:49 +0200)]
Add SHOW STATS_TOTALS / STATS_AVERAGES as admin commands

We already had SHOW STATS, but after adding the wait_time colums it
got a bit too wide for regular screens. That's incovenient, as the
admin interface does not selecting only some of the columns.

But in most cases we're only interested either in totals or averages,
not both at the same time. So let's add commands showing only the
relevant subset of columns.

7 years agoTrack total time spent waiting for server
Tomas Vondra [Wed, 20 Sep 2017 21:22:39 +0000 (23:22 +0200)]
Track total time spent waiting for server

There already is maxwait column in pool details, showing how long
the oldest client is currently waiting. Which is useful, but it does
not allow us to easily break client time into the three basic
categories: busy, idle and waiting.

This adds tracking of total time spent waiting for a server, and
adds it as wait_time into SHOW STATS. The total value is simply
accumulated over time, the average value is 'per second' value.

The value is only updated when a client acquires a server, so if
a client is waiting indefinitely, the wait time won't be reflected
in the value. That would require inspecting the the list of waiting
clients, which seems like overkill. Moreover, that's what maxwait
is good for.

7 years agoTrack separate stats for queries and transactions
Tomas Vondra [Wed, 20 Sep 2017 19:00:17 +0000 (21:00 +0200)]
Track separate stats for queries and transactions

The documentation claimed avg_query tracks average query duration,
but it was only updated when switching into 'idle' state. So in
transaction or session pooling modes, it was actually the duration
of the whole transaction, including 'idle in transaction' time and
time spen executing (multiple) queries.

This was causing confusion, e.g. when the application was keeping
transactions open without executing any queries. In that case the
avg_query metric was increasing although the database was handling
queries just fine (without any slow-down).

Instead of just fixing the avg_query metric, it seems quite useful
to have timing data both for queries and transactions. So this
patch replaces

 - total_query_time
 - avg_query

with

 - total_xact_time
 - total_query_time
 - avg_xact_time
 - avg_query_time

This is also related to the definition of 'request' which was used
to compute the avg_query, and so it equal to a transaction. This
patch replaces the counter with two - one for transactions and one
for queries. As we also computed avg_req, the patch replaces

 - total_requests
 - avg_req

with

 - total_xact_count
 - total_query_time
 - avg_xact_count
 - avg_query_count

Note: This is likely to affect monitoring solutions, as the column
names in SHOW STATS change.

7 years agoCorrects bits vs bytes
Peter Eisentraut [Fri, 11 Aug 2017 18:52:08 +0000 (14:52 -0400)]
Corrects bits vs bytes

Change "b/s" to "B/s", because the units are bytes.

7 years agopgbouncer.ini: Add missing auth_type's to comment
Peter Eisentraut [Tue, 19 Sep 2017 16:10:55 +0000 (12:10 -0400)]
pgbouncer.ini: Add missing auth_type's to comment

7 years agoFix crash from memory overrun
Peter Eisentraut [Thu, 24 Aug 2017 17:11:03 +0000 (13:11 -0400)]
Fix crash from memory overrun

Fixes: #228
7 years agoMerge branch 'master' of https://github.com/pgbouncer/pgbouncer
Marko Kreen [Sun, 9 Jul 2017 13:07:40 +0000 (16:07 +0300)]
Merge branch 'master' of https://github.com/pgbouncer/pgbouncer

7 years agoMerge pull request #217 from mnencia/patch-1
Marko Kreen [Sun, 9 Jul 2017 13:06:41 +0000 (16:06 +0300)]
Merge pull request #217 from mnencia/patch-1

dns_zone_check_period is available also with c-ares backend

7 years agoUpgrade libusual
Marko Kreen [Sun, 9 Jul 2017 13:03:58 +0000 (16:03 +0300)]
Upgrade libusual

7 years agoDont set flags when doing with-cares=auto
Marko Kreen [Sun, 9 Jul 2017 13:03:31 +0000 (16:03 +0300)]
Dont set flags when doing with-cares=auto

7 years agoMerge pull request #218 from mnencia/patch-2
Marko Kreen [Sun, 9 Jul 2017 12:58:37 +0000 (15:58 +0300)]
Merge pull request #218 from mnencia/patch-2

Fix --with-cares=auto

7 years agoMerge pull request #219 from rubenv/patch-1
Marko Kreen [Sun, 9 Jul 2017 12:56:50 +0000 (15:56 +0300)]
Merge pull request #219 from rubenv/patch-1

Add missing space

7 years agoAdd missing space
Ruben Vermeersch [Fri, 7 Jul 2017 08:42:08 +0000 (10:42 +0200)]
Add missing space

Turns this:

    Stats: 21 req/s, in 579668 b/s, out 422757 b/s,query 84412 us

Into this:

    Stats: 21 req/s, in 579668 b/s, out 422757 b/s, query 84412 us

7 years agoFix --with-cares=auto
Marco Nenciarini [Thu, 29 Jun 2017 12:01:33 +0000 (14:01 +0200)]
Fix --with-cares=auto

7 years agodns_zone_check_period is available also with c-ares backend
Marco Nenciarini [Thu, 29 Jun 2017 10:29:50 +0000 (12:29 +0200)]
dns_zone_check_period is available also with c-ares backend

7 years agoMerge pull request #196 from mhagander/auth_type_mode
Marko Kreen [Wed, 28 Jun 2017 15:21:27 +0000 (18:21 +0300)]
Merge pull request #196 from mhagander/auth_type_mode

Fix incorrect references to auth_mode

7 years agoMerge pull request #202 from gbartolini/dev/142
Marko Kreen [Wed, 28 Jun 2017 15:15:50 +0000 (18:15 +0300)]
Merge pull request #202 from gbartolini/dev/142

Global management of 'auth_user'

7 years agoMerge pull request #183 from jeduardo/master
Marko Kreen [Wed, 28 Jun 2017 15:02:04 +0000 (18:02 +0300)]
Merge pull request #183 from jeduardo/master

Increased maximum length for postgres password

7 years agoMerge branch 'master' of https://github.com/pgbouncer/pgbouncer
Marko Kreen [Wed, 28 Jun 2017 15:00:46 +0000 (18:00 +0300)]
Merge branch 'master' of https://github.com/pgbouncer/pgbouncer

7 years agosbuf: check for EAGAIN in connect
Marko Kreen [Wed, 28 Jun 2017 14:58:51 +0000 (17:58 +0300)]
sbuf: check for EAGAIN in connect

seems it can be returned in win32

fixes: #188 #161

7 years agohba: call next_token after parsing filename (#209)
Marko Kreen [Wed, 28 Jun 2017 14:50:50 +0000 (17:50 +0300)]
hba: call next_token after parsing filename (#209)

7 years agohba: parse_namefile did unnecessary free
Marko Kreen [Wed, 28 Jun 2017 14:48:30 +0000 (17:48 +0300)]
hba: parse_namefile did unnecessary free

Fixes: #209
7 years agoMerge pull request #213 from procore/add_client_wait_time
Marko Kreen [Wed, 28 Jun 2017 14:38:16 +0000 (17:38 +0300)]
Merge pull request #213 from procore/add_client_wait_time

Add per-socket wait times to SHOW SOCKET.

7 years agoMerge pull request #212 from procore/add_maxwait_us
Marko Kreen [Wed, 28 Jun 2017 14:37:55 +0000 (17:37 +0300)]
Merge pull request #212 from procore/add_maxwait_us

Add a maxwait microseconds column to SHOW POOLS.

7 years agoMerge pull request #214 from secwall/master
Marko Kreen [Wed, 28 Jun 2017 14:35:21 +0000 (17:35 +0300)]
Merge pull request #214 from secwall/master

Fix memleak on pg_hba file reload

7 years agoFree user_name and db_name in hba rule_free to avoid memory leak on hba file reload
secwall [Sat, 10 Jun 2017 10:45:35 +0000 (13:45 +0300)]
Free user_name and db_name in hba rule_free to avoid memory leak on hba file reload

7 years agoAdd per-socket wait times to show commands.
Terrence Cole [Fri, 9 Jun 2017 20:12:19 +0000 (13:12 -0700)]
Add per-socket wait times to show commands.

7 years agoAdd a maxwait microseconds column to SHOW POOLS.
Terrence Cole [Fri, 9 Jun 2017 18:39:31 +0000 (11:39 -0700)]
Add a maxwait microseconds column to SHOW POOLS.

7 years agoFix a couple of typos
Gabriele Bartolini [Sun, 16 Apr 2017 19:16:41 +0000 (21:16 +0200)]
Fix a couple of typos

Signed-off-by: Gabriele Bartolini <gabriele.bartolini@2ndQuadrant.it>
7 years agoGlobal management of `auth_user`
Gabriele Bartolini [Fri, 14 Apr 2017 08:23:39 +0000 (10:23 +0200)]
Global management of `auth_user`

Fixes #142

Signed-off-by: Gabriele Bartolini <gabriele.bartolini@2ndQuadrant.it>
7 years agoFix incorrect references to auth_mode
Magnus Hagander [Thu, 30 Mar 2017 15:25:57 +0000 (17:25 +0200)]
Fix incorrect references to auth_mode

The parameter is called auth_type, not auth_mode.

7 years agoImproved comment on max password length
J. Eduardo [Tue, 7 Feb 2017 22:13:44 +0000 (23:13 +0100)]
Improved comment on max password length

7 years agoAdded warning for max password length
J. Eduardo [Tue, 7 Feb 2017 22:11:57 +0000 (23:11 +0100)]
Added warning for max password length

7 years agoIncreased maximum length for postgres password
J. Eduardo [Tue, 7 Feb 2017 21:34:34 +0000 (22:34 +0100)]
Increased maximum length for postgres password

7 years agoMerge pull request #178 from marco44/master
Petr Jelinek [Tue, 24 Jan 2017 19:59:13 +0000 (20:59 +0100)]
Merge pull request #178 from marco44/master

Add paused and disabled field to the SHOW DATABASES command

7 years agoAdd paused and disabled field on the show databases command
Marc Cousin [Tue, 24 Jan 2017 15:25:54 +0000 (16:25 +0100)]
Add paused and disabled field on the show databases command

7 years agoMerge pull request #157 from anayrat/master
Marko Kreen [Tue, 27 Dec 2016 15:06:38 +0000 (17:06 +0200)]
Merge pull request #157 from anayrat/master

Mention auth_user in pgbouncer.ini example

7 years agoMerge pull request #171 from macobo/patch-1
Marko Kreen [Tue, 27 Dec 2016 14:43:08 +0000 (16:43 +0200)]
Merge pull request #171 from macobo/patch-1

Improve build instructions

7 years agodoc: auth_query - mention that function is run in target db
Marko Kreen [Tue, 20 Dec 2016 10:39:25 +0000 (12:39 +0200)]
doc: auth_query - mention that function is run in target db

7 years agoUpgrade libusual
Marko Kreen [Sat, 17 Dec 2016 11:10:04 +0000 (13:10 +0200)]
Upgrade libusual

Mainly to get OpenSSL 1.1 fixes

Fixes: #159
7 years agoImprove build instructions
Karl-Aksel Puulmann [Fri, 16 Dec 2016 12:15:13 +0000 (14:15 +0200)]
Improve build instructions

Ran into this when building a docker image.

7 years agoMerge branch 'master' of https://github.com/pgbouncer/pgbouncer
Marko Kreen [Tue, 6 Dec 2016 16:57:44 +0000 (18:57 +0200)]
Merge branch 'master' of https://github.com/pgbouncer/pgbouncer

7 years agoconsole: change server_encoding to UTF8 from SQL_ASCII
Marko Kreen [Tue, 6 Dec 2016 16:42:22 +0000 (18:42 +0200)]
console: change server_encoding to UTF8 from SQL_ASCII

cannot see any benefit of keeping SQL_ASCII around here.

7 years agoconsole: use UTF8 instead UNICODE as client_encoding
Marko Kreen [Tue, 6 Dec 2016 16:40:25 +0000 (18:40 +0200)]
console: use UTF8 instead UNICODE as client_encoding

Seems UTF8 is proper encoding and UNICODE is alias.
Java JDBC driver gets confused by UNICODE.

Fixes: #165
7 years agoMerge pull request #137 from waldyrious/patch-1
Marko Kreen [Mon, 5 Dec 2016 15:37:44 +0000 (17:37 +0200)]
Merge pull request #137 from waldyrious/patch-1

add license title

7 years agoMerge pull request #162 from mhagander/typofix
Marko Kreen [Mon, 5 Dec 2016 15:27:36 +0000 (17:27 +0200)]
Merge pull request #162 from mhagander/typofix

Fix typo

7 years agoFix typo
Magnus Hagander [Tue, 15 Nov 2016 13:45:46 +0000 (14:45 +0100)]
Fix typo

7 years agoMerge pull request #147 from cpatru/issue-141
Petr Jelinek [Mon, 7 Nov 2016 18:19:02 +0000 (19:19 +0100)]
Merge pull request #147 from cpatru/issue-141

Don't send ReadyForQuery on main_connection for CancelQuery requests

8 years agoMention auth_user in pgbouncer.ini example
anayrat [Thu, 27 Oct 2016 08:27:53 +0000 (10:27 +0200)]
Mention auth_user in pgbouncer.ini example

8 years agoDon't send ReadyForQuery on main_connection as it may cause clients to get out of...
cpatru [Wed, 14 Sep 2016 17:17:40 +0000 (18:17 +0100)]
Don't send ReadyForQuery on main_connection as it may cause clients to get out of sync.

8 years agoMerge pull request #155 from mhagander/pam_thread_fix
Petr Jelinek [Tue, 25 Oct 2016 15:44:48 +0000 (17:44 +0200)]
Merge pull request #155 from mhagander/pam_thread_fix

Make pam_init happen in the child process when forking

8 years agoMake pam_init happen in the child process when forking
Magnus Hagander [Tue, 25 Oct 2016 15:12:49 +0000 (17:12 +0200)]
Make pam_init happen in the child process when forking

Previously, pam_init would happen in the master process that then
quickly died, rendering pam authentication inoperative.

8 years agoadd license title
Waldir Pimenta [Fri, 1 Jul 2016 17:36:59 +0000 (18:36 +0100)]
add license title

It's not strictly required, but it's useful metadata, and part of the recommended license template text (see http://choosealicense.com/licenses/isc/ and https://opensource.org/licenses/isc-license)

8 years agoAdd PAM authentication support
Ilya Staheev [Mon, 21 Mar 2016 16:29:08 +0000 (17:29 +0100)]
Add PAM authentication support

Adds support for PAM authentication. Since PAM API is synchronous, this
patch introduces PAM authentication thread which processes the
authentication requests in backgrouns so that the normal poll operations
of the main thread are not blocked.

This feature is turned off by default and has to be enabled by
--with-pam configure parameter.

Author: Ilya Staheev
Reviewed by Marko Kreen and Petr Jelinek

8 years agohba: Skip unparseable lines, keep parsing to the end.
Marko Kreen [Mon, 14 Mar 2016 10:09:07 +0000 (12:09 +0200)]
hba: Skip unparseable lines, keep parsing to the end.

Rejecting whole HBA file on failure seems bad usability.

Show warning but keep parsing.

Fixes #118

8 years agotls: reject client TLS request on unix socket
Marko Kreen [Sat, 12 Mar 2016 12:31:26 +0000 (14:31 +0200)]
tls: reject client TLS request on unix socket

8 years agotls: do not ask TLS on unix socket
Marko Kreen [Sat, 12 Mar 2016 12:12:18 +0000 (14:12 +0200)]
tls: do not ask TLS on unix socket

8 years agov1.7.2 pgbouncer_1_7_2
Marko Kreen [Fri, 26 Feb 2016 11:53:32 +0000 (13:53 +0200)]
v1.7.2

8 years agodeb: turn on full hardening, needs v9 dh
Marko Kreen [Fri, 26 Feb 2016 10:24:19 +0000 (12:24 +0200)]
deb: turn on full hardening, needs v9 dh

8 years agoSort tarball files too, just in case.
Marko Kreen [Fri, 26 Feb 2016 08:57:03 +0000 (10:57 +0200)]
Sort tarball files too, just in case.

8 years agoDisable cleanup.
Marko Kreen [Fri, 26 Feb 2016 08:13:50 +0000 (10:13 +0200)]
Disable cleanup.

Not useful for production loads, only for debugging.

8 years agoRevert "Skip cleanup if there is takeover"
Marko Kreen [Thu, 25 Feb 2016 18:52:39 +0000 (20:52 +0200)]
Revert "Skip cleanup if there is takeover"

This reverts commit 7c03a6c8f8d9ffcc3f0152e74c629213487b6d64.

8 years agoSkip cleanup if there is takeover
Marko Kreen [Wed, 24 Feb 2016 19:15:15 +0000 (21:15 +0200)]
Skip cleanup if there is takeover

8 years agoShow TLS backend version
Marko Kreen [Wed, 24 Feb 2016 18:28:59 +0000 (20:28 +0200)]
Show TLS backend version

8 years agoSync libusual
Marko Kreen [Wed, 24 Feb 2016 18:28:46 +0000 (20:28 +0200)]
Sync libusual

8 years agotakeover: wait for pidfile to go away
Marko Kreen [Wed, 24 Feb 2016 18:12:28 +0000 (20:12 +0200)]
takeover: wait for pidfile to go away

8 years agoMissing var declaration.
Marko Kreen [Wed, 24 Feb 2016 17:58:31 +0000 (19:58 +0200)]
Missing var declaration.

8 years agoSync libusual
Marko Kreen [Tue, 23 Feb 2016 10:08:41 +0000 (12:08 +0200)]
Sync libusual

8 years agoProper stale pidfile handling in check_pidfile.
Marko Kreen [Tue, 23 Feb 2016 09:20:43 +0000 (11:20 +0200)]
Proper stale pidfile handling in check_pidfile.

- Don't use remove_pidfile as that also frees value.
- Check for error, exit if failed.

8 years agoMerge remote-tracking branch 'main/master'
Marko Kreen [Tue, 23 Feb 2016 09:03:44 +0000 (11:03 +0200)]
Merge remote-tracking branch 'main/master'

8 years agoAlways check for NULL cf_pidfile
Marko Kreen [Mon, 22 Feb 2016 08:20:55 +0000 (10:20 +0200)]
Always check for NULL cf_pidfile

It is used before config is loaded.

8 years agoMerge pull request #112 from credativ/reproducible
Marko Kreen [Sun, 21 Feb 2016 15:53:30 +0000 (17:53 +0200)]
Merge pull request #112 from credativ/reproducible

Make build reproducible by dropping DBGVER handling

8 years agoMake build reproducible by dropping DBGVER handling
Christoph Berg [Sun, 21 Feb 2016 14:35:18 +0000 (15:35 +0100)]
Make build reproducible by dropping DBGVER handling

Debian wants debug symbols for all builds (the binaries are stripped by
debhelper's dh_strip), but the "(compiled by...)" information added for
debug builds defeats the goal to make builds reproducible on the binary
level. Fix by dropping the DBGVER information which doesn't serve any
purpose if the build output is byte-identical on rebuild.

https://wiki.debian.org/ReproducibleBuilds

8 years agov1.7.1 pgbouncer_1_7_1
Marko Kreen [Thu, 18 Feb 2016 16:56:47 +0000 (18:56 +0200)]
v1.7.1

8 years agodoc: improve auth_user docs
Marko Kreen [Thu, 18 Feb 2016 16:36:42 +0000 (18:36 +0200)]
doc: improve auth_user docs

8 years agodoc: fix manpage section
Marko Kreen [Thu, 18 Feb 2016 16:35:53 +0000 (18:35 +0200)]
doc: fix manpage section

8 years agotodo cleanup
Marko Kreen [Thu, 18 Feb 2016 16:35:34 +0000 (18:35 +0200)]
todo cleanup

8 years agolibusual: sync, change url
Marko Kreen [Wed, 17 Feb 2016 15:54:22 +0000 (17:54 +0200)]
libusual: sync, change url

8 years agoSync libusual
Marko Kreen [Mon, 15 Feb 2016 07:18:36 +0000 (09:18 +0200)]
Sync libusual

8 years agoAdd TLS options to sample config file.
Marko Kreen [Sun, 14 Feb 2016 11:57:05 +0000 (13:57 +0200)]
Add TLS options to sample config file.

8 years agooptscan: fix doc path
Marko Kreen [Sun, 14 Feb 2016 11:56:28 +0000 (13:56 +0200)]
optscan: fix doc path

8 years agoRename sslmode "disabled" to "disable" as in libpq
Marko Kreen [Sun, 14 Feb 2016 11:55:15 +0000 (13:55 +0200)]
Rename sslmode "disabled" to "disable" as in libpq

8 years agosbuf: remove unused function
Marko Kreen [Sun, 14 Feb 2016 11:32:16 +0000 (13:32 +0200)]
sbuf: remove unused function

8 years agoSync libusual
Marko Kreen [Fri, 12 Feb 2016 13:35:03 +0000 (15:35 +0200)]
Sync libusual

8 years agoFix some format warnings under win64
Marko Kreen [Fri, 12 Feb 2016 13:34:41 +0000 (15:34 +0200)]
Fix some format warnings under win64

8 years agotags: look deeper under libusual
Marko Kreen [Fri, 12 Feb 2016 13:34:11 +0000 (15:34 +0200)]
tags: look deeper under libusual