Hello community, here is the log from the commit of package sysbench for openSUSE:Factory checked in at 2016-08-03 11:43:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sysbench (Old) and /work/SRC/openSUSE:Factory/.sysbench.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "sysbench" Changes: -------- --- /work/SRC/openSUSE:Factory/sysbench/sysbench.changes 2016-06-14 23:08:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.sysbench.new/sysbench.changes 2016-08-03 11:43:53.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Jul 22 07:05:46 UTC 2016 - mpluskal@suse.com + +- Update to version 0.5.0+git.20160721: + * Fixes #57: Race condition in sb_timer_value() + +------------------------------------------------------------------- Old: ---- sysbench-0.5.0+git.20160610.tar.xz New: ---- sysbench-0.5.0+git.20160721.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sysbench.spec ++++++ --- /var/tmp/diff_new_pack.BZOHRC/_old 2016-08-03 11:43:54.000000000 +0200 +++ /var/tmp/diff_new_pack.BZOHRC/_new 2016-08-03 11:43:54.000000000 +0200 @@ -16,9 +16,9 @@ # -%define version_unconverted 0.5.0+git.20160610 +%define version_unconverted 0.5.0+git.20160721 Name: sysbench -Version: 0.5.0+git.20160610 +Version: 0.5.0+git.20160721 Release: 0 Summary: A MySQL benchmarking tool License: GPL-2.0 @@ -58,9 +58,12 @@ %install %make_install help2man ./sysbench/sysbench > sysbench.1 -install -D -m 0644 sysbench.1 %{buildroot}%{_mandir}/man1/sysbench.1 -install -D -m 0755 sysbench-example-tests/sysbench-example-test %{buildroot}%{_datadir}/sysbench/sysbench-example-test -install -D -m 0755 sysbench-example-tests/sysbench-example-all-tests %{buildroot}%{_datadir}/sysbench/sysbench-example-all-tests +install -D -p -m 0644 sysbench.1 \ + %{buildroot}%{_mandir}/man1/sysbench.1 +install -D -p -m 0755 sysbench-example-tests/sysbench-example-test \ + %{buildroot}%{_datadir}/sysbench/sysbench-example-test +install -D -p -m 0755 sysbench-example-tests/sysbench-example-all-tests \ + %{buildroot}%{_datadir}/sysbench/sysbench-example-all-tests rm -rf %{buildroot}%{_datadir}/doc/sysbench %files ++++++ sysbench-0.5.0+git.20160610.tar.xz -> sysbench-0.5.0+git.20160721.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-0.5.0+git.20160610/sysbench/sb_timer.c new/sysbench-0.5.0+git.20160721/sysbench/sb_timer.c --- old/sysbench-0.5.0+git.20160610/sysbench/sb_timer.c 2016-06-12 11:31:03.000000000 +0200 +++ new/sysbench-0.5.0+git.20160721/sysbench/sb_timer.c 2016-07-21 11:27:35.000000000 +0200 @@ -130,11 +130,16 @@ } -/* get the current timer value in nanoseconds */ +/* + get the current timer value in nanoseconds without affecting is state, i.e. + is safe to be used concurrently on a shared timer. +*/ unsigned long long sb_timer_value(sb_timer_t *t) { + struct timespec ts; + switch (t->state) { case TIMER_INITIALIZED: log_text(LOG_WARNING, "timer was never started"); @@ -148,9 +153,8 @@ abort(); } - sb_timer_update(t); - - return t->elapsed; + SB_GETTIME(&ts); + return TIMESPEC_DIFF(ts, t->time_start) + t->queue_time; }