Hello community, here is the log from the commit of package sysbench for openSUSE:Factory checked in at 2017-06-12 15:28:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sysbench (Old) and /work/SRC/openSUSE:Factory/.sysbench.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sysbench" Mon Jun 12 15:28:29 2017 rev:13 rq:499635 version:1.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/sysbench/sysbench.changes 2017-05-17 17:19:28.567581921 +0200 +++ /work/SRC/openSUSE:Factory/.sysbench.new/sysbench.changes 2017-06-12 15:28:30.589548139 +0200 @@ -1,0 +2,11 @@ +Tue May 30 08:43:58 UTC 2017 - [email protected] + +- Update to version 1.0.7: + * Ubuntu Zesty added to package build matrix + * fixed GH-130: Mutex Benchmark Documentation + * fixed latency reports in the --rate mode + * fixed compiler warnings when building against MySQL 8.0 client + libraries +- Drop examples as they are no longer compliant with current syntax + +------------------------------------------------------------------- Old: ---- sysbench-1.0.6.tar.gz sysbench-example-tests.tar.bz2 New: ---- sysbench-1.0.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sysbench.spec ++++++ --- /var/tmp/diff_new_pack.8uLLPZ/_old 2017-06-12 15:28:31.529415589 +0200 +++ /var/tmp/diff_new_pack.8uLLPZ/_new 2017-06-12 15:28:31.533415024 +0200 @@ -16,26 +16,22 @@ # -%if 0%{?is_opensuse} -%bcond_with sysbench_tests -%endif Name: sysbench -Version: 1.0.6 +Version: 1.0.7 Release: 0 Summary: A MySQL benchmarking tool License: GPL-2.0 Group: System/Benchmark Url: https://github.com/akopytov/sysbench -Source0: https://github.com/akopytov/sysbench/archive/1.0.6.tar.gz#/%{name}-%{version}.tar.gz -Source1: %{name}-example-tests.tar.bz2 +Source0: https://github.com/akopytov/sysbench/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: autoconf BuildRequires: automake +BuildRequires: cram BuildRequires: docbook BuildRequires: docbook-xsl-stylesheets BuildRequires: libaio-devel BuildRequires: libtool BuildRequires: libxslt-tools -BuildRequires: libxslt-tools BuildRequires: mysql-devel BuildRequires: openssl-devel BuildRequires: pkgconfig @@ -43,10 +39,6 @@ BuildRequires: vim BuildRequires: pkgconfig(ck) BuildRequires: pkgconfig(luajit) -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if %{with sysbench_tests} -BuildRequires: cram -%endif %description This benchmark was designed for identifying basic system parameters, as @@ -55,7 +47,6 @@ %prep %setup -q -%setup -q -T -D -a 1 %build autoreconf -fiv @@ -66,17 +57,11 @@ --with-pgsql make %{?_smp_mflags} V=1 -%if %{with sysbench_tests} %check make %{?_smp_mflags} check -%endif %install %make_install -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-1.0.6.tar.gz -> sysbench-1.0.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/.travis.yml new/sysbench-1.0.7/.travis.yml --- old/sysbench-1.0.6/.travis.yml 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/.travis.yml 2017-05-15 16:09:33.000000000 +0200 @@ -36,12 +36,14 @@ - OS=ubuntu DIST=trusty - OS=ubuntu DIST=xenial - OS=ubuntu DIST=yakkety + - OS=ubuntu DIST=zesty - OS=debian DIST=wheezy - OS=debian DIST=jessie - OS=ubuntu DIST=precise ARCH=i386 - OS=ubuntu DIST=trusty ARCH=i386 - OS=ubuntu DIST=xenial ARCH=i386 - OS=ubuntu DIST=yakkety ARCH=i386 + - OS=ubuntu DIST=zesty ARCH=i386 - OS=debian DIST=wheezy ARCH=i386 - OS=debian DIST=jessie ARCH=i386 @@ -63,6 +65,8 @@ compiler: clang - env: OS=ubuntu DIST=yakkety compiler: clang + - env: OS=ubuntu DIST=zesty + compiler: clang - env: OS=debian DIST=wheezy compiler: clang - env: OS=debian DIST=jessie @@ -77,6 +81,8 @@ compiler: clang - env: OS=ubuntu DIST=yakkety ARCH=i386 compiler: clang + - env: OS=ubuntu DIST=zesty ARCH=i386 + compiler: clang - env: OS=debian DIST=wheezy ARCH=i386 compiler: clang - env: OS=debian DIST=jessie ARCH=i386 @@ -99,6 +105,8 @@ os: osx - env: OS=ubuntu DIST=yakkety os: osx + - env: OS=ubuntu DIST=zesty + os: osx - env: OS=debian DIST=wheezy os: osx - env: OS=debian DIST=jessie diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/ChangeLog new/sysbench-1.0.7/ChangeLog --- old/sysbench-1.0.6/ChangeLog 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/ChangeLog 2017-05-15 16:09:33.000000000 +0200 @@ -1,3 +1,12 @@ +2017-05-15 Alexey Kopytov <[email protected]> + + * version 1.0.7 + * Ubuntu Zesty added to package build matrix + * fixed GH-130: Mutex Benchmark Documentation + * fixed latency reports in the --rate mode + * fixed compiler warnings when building against MySQL 8.0 client + libraries + 2017-04-13 Alexey Kopytov <[email protected]> * version 1.0.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/README.md new/sysbench-1.0.7/README.md --- old/sysbench-1.0.6/README.md 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/README.md 2017-05-15 16:09:33.000000000 +0200 @@ -5,6 +5,29 @@ [![Coverage Status][coveralls-badge]][coveralls-url] [![License][license-badge]][license-url] +<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again --> +**Table of Contents** + +- [sysbench](#sysbench) + - [Features](#features) +- [Installing from Binary Packages](#installing-from-binary-packages) + - [Linux](#linux) + - [macOS](#macos) + - [Windows](#windows) +- [Building and Installing From Source](#building-and-installing-from-source) + - [Build Requirements](#build-requirements) + - [Windows](#windows) + - [Debian/Ubuntu](#debianubuntu) + - [RHEL/CentOS](#rhelcentos) + - [Fedora](#fedora) + - [macOS](#macos) + - [Build and Install](#build-and-install) +- [Usage](#usage) + - [General syntax](#general-syntax) + - [General command line options](#general-command-line-options) + +<!-- markdown-toc end --> + # sysbench sysbench is a scriptable multi-threaded benchmark tool based on @@ -48,7 +71,7 @@ Quick install instructions: -- Debian/Ubunu +- Debian/Ubuntu ``` shell curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash sudo apt -y install sysbench @@ -75,15 +98,16 @@ ``` ## Windows -As of sysbench 1.0 support for native Windows builds was -dropped. It may be re-introduced in later versions. Currently, the -recommended way to obtain sysbench on Windows is using +As of sysbench 1.0 support for native Windows builds was dropped. It may +be re-introduced in later releases. Currently, the recommended way to +obtain sysbench on Windows is +using [Windows Subsystem for Linux available in Windows 10](https://msdn.microsoft.com/en-us/commandline/wsl/about). -After installing WSL and getting into bash prompt on Windows, following -Debian/Ubuntu installation instructions is sufficient. Alternatively, one can -use WSL build and install sysbench from source, or use an older sysbench -release to build a native binary. +After installing WSL and getting into he bash prompt on Windows +following Debian/Ubuntu installation instructions is +sufficient. Alternatively, one can use WSL to build and install sysbench +from source, or use an older sysbench release to build a native binary. # Building and Installing From Source @@ -103,7 +127,7 @@ After installing WSL and getting into bash prompt on Windows, following Debian/Ubuntu build instructions is sufficient. Alternatively, one can -build and use sysbench 0.5 natively for Windows. +build and use an older 0.5 release on Windows. ### Debian/Ubuntu ``` shell diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/configure.ac new/sysbench-1.0.7/configure.ac --- old/sysbench-1.0.6/configure.ac 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/configure.ac 2017-05-15 16:09:33.000000000 +0200 @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.63) -AC_INIT([sysbench],[1.0.6],[https://github.com/akopytov/sysbench/issues], +AC_INIT([sysbench],[1.0.7],[https://github.com/akopytov/sysbench/issues], [sysbench], [https://github.com/akopytov/sysbench]) AC_CONFIG_AUX_DIR([config]) # Setting CFLAGS here prevents AC_CANONICAL_TARGET from injecting them @@ -329,6 +329,10 @@ fi AC_CHECK_SIZEOF(size_t) +AC_CHECK_SIZEOF(bool,, + [ + #include <stdbool.h> + ]) # Checks for library functions. AC_FUNC_MMAP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/rpm/sysbench.spec new/sysbench-1.0.7/rpm/sysbench.spec --- old/sysbench-1.0.6/rpm/sysbench.spec 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/rpm/sysbench.spec 2017-05-15 16:09:33.000000000 +0200 @@ -75,13 +75,13 @@ %changelog -* Thu Apr 09 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 +* Sun Apr 09 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 - Add --without-gcc-arch to configure flags -* Thu Apr 08 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 +* Sat Apr 08 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 - Workarounds for make_build and license macros which are not available on EL 6. -* Thu Apr 07 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 +* Fri Apr 07 2017 Alexey Kopytov <[email protected]> - 1.0.5-1 - Depend on mysql-devel rather than mariadb-devel on EL 6. - Use bundled cram for tests, because it's not available on EL 6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/scripts/buildpack.sh new/sysbench-1.0.7/scripts/buildpack.sh --- old/sysbench-1.0.6/scripts/buildpack.sh 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/scripts/buildpack.sh 2017-05-15 16:09:33.000000000 +0200 @@ -54,6 +54,7 @@ "ubuntu trusty x86_64" "ubuntu xenial x86_64" "ubuntu yakkety x86_64" + "ubuntu zesty x86_64" "debian wheezy x86_64" "debian jessie x86_64" ) @@ -63,6 +64,7 @@ "ubuntu trusty i386" "ubuntu xenial i386" "ubuntu yakkety i386" + "ubuntu zesty i386" "debian wheezy i386" "debian jessie i386" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/src/drivers/mysql/drv_mysql.c new/sysbench-1.0.7/src/drivers/mysql/drv_mysql.c --- old/sysbench-1.0.6/src/drivers/mysql/drv_mysql.c 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/src/drivers/mysql/drv_mysql.c 2017-05-15 16:09:33.000000000 +0200 @@ -548,6 +548,27 @@ } +static void convert_to_mysql_bind(MYSQL_BIND *mybind, db_bind_t *bind) +{ + mybind->buffer_type = get_mysql_bind_type(bind->type); + mybind->buffer = bind->buffer; + mybind->buffer_length = bind->max_len; + mybind->length = bind->data_len; + /* + Reuse the buffer passed by the caller to avoid conversions. This is only + valid if sizeof(char) == sizeof(mybind->is_null[0]). Depending on the + version of the MySQL client library, the type of MYSQL_BIND::is_null[0] can + be either my_bool or bool, but sizeof(bool) is not defined by the C + standard. We assume it to be 1 on most platforms to simplify code and Lua + API. + */ +#if SIZEOF_BOOL > 1 +# error This code assumes sizeof(bool) == 1! +#endif + mybind->is_null = (my_bool *) bind->is_null; +} + + /* Bind parameters for prepared statement */ @@ -584,13 +605,7 @@ if (bind == NULL) return 1; for (i = 0; i < len; i++) - { - bind[i].buffer_type = get_mysql_bind_type(params[i].type); - bind[i].buffer = params[i].buffer; - bind[i].buffer_length = params[i].max_len; - bind[i].length = params[i].data_len; - bind[i].is_null = params[i].is_null; - } + convert_to_mysql_bind(&bind[i], ¶ms[i]); rc = mysql_stmt_bind_param(stmt->ptr, bind); DEBUG("mysql_stmt_bind_param(%p, %p) = %d", stmt->ptr, bind, rc); @@ -644,13 +659,7 @@ if (bind == NULL) return 1; for (i = 0; i < len; i++) - { - bind[i].buffer_type = get_mysql_bind_type(params[i].type); - bind[i].buffer = params[i].buffer; - bind[i].buffer_length = params[i].max_len; - bind[i].length = params[i].data_len; - bind[i].is_null = params[i].is_null; - } + convert_to_mysql_bind(&bind[i], ¶ms[i]); rc = mysql_stmt_bind_result(stmt->ptr, bind); DEBUG("mysql_stmt_bind_result(%p, %p) = %d", stmt->ptr, bind, rc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/src/sysbench.c new/sysbench-1.0.7/src/sysbench.c --- old/sysbench-1.0.6/src/sysbench.c 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/src/sysbench.c 2017-05-15 16:09:33.000000000 +0200 @@ -913,9 +913,9 @@ } /* Enqueue a new event */ - queue_array[i++] = sb_timer_value(&sb_exec_timer); + queue_array[i] = sb_timer_value(&sb_exec_timer); if (ck_ring_enqueue_spmc(&queue_ring, queue_ring_buffer, - &queue_array[i]) == false) + &queue_array[i++]) == false) { ck_pr_store_int(&queue_is_full, 1); log_text(LOG_FATAL, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/src/tests/mutex/sb_mutex.c new/sysbench-1.0.7/src/tests/mutex/sb_mutex.c --- old/sysbench-1.0.6/src/tests/mutex/sb_mutex.c 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/src/tests/mutex/sb_mutex.c 2017-05-15 16:09:33.000000000 +0200 @@ -29,6 +29,8 @@ #endif #include "sysbench.h" +#include "sb_ck_pr.h" +#include "sb_rand.h" typedef struct { @@ -42,7 +44,7 @@ { SB_OPT("mutex-num", "total size of mutex array", "4096", INT), SB_OPT("mutex-locks", "number of mutex locks to do per thread", "50000", INT), - SB_OPT("mutex-loops", "number of empty loops to do inside mutex lock", + SB_OPT("mutex-loops", "number of empty loops to do outside mutex lock", "10000", INT), SB_OPT_END @@ -144,7 +146,6 @@ int mutex_execute_event(sb_event_t *sb_req, int thread_id) { unsigned int i; - unsigned int c=0; unsigned int current_lock; sb_mutex_request_t *mutex_req = &sb_req->u.mutex_request; @@ -152,9 +153,11 @@ do { - current_lock = rand() % mutex_num; + current_lock = sb_rand_uniform(0, mutex_num - 1); + for (i = 0; i < mutex_req->nloops; i++) - c++; + ck_pr_barrier(); + pthread_mutex_lock(&thread_locks[current_lock].mutex); global_var++; pthread_mutex_unlock(&thread_locks[current_lock].mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sysbench-1.0.6/tests/t/test_mutex.t new/sysbench-1.0.7/tests/t/test_mutex.t --- old/sysbench-1.0.6/tests/t/test_mutex.t 2017-04-13 22:38:56.000000000 +0200 +++ new/sysbench-1.0.7/tests/t/test_mutex.t 2017-05-15 16:09:33.000000000 +0200 @@ -8,7 +8,7 @@ mutex options: --mutex-num=N total size of mutex array [4096] --mutex-locks=N number of mutex locks to do per thread [50000] - --mutex-loops=N number of empty loops to do inside mutex lock [10000] + --mutex-loops=N number of empty loops to do outside mutex lock [10000] $ sysbench $args prepare sysbench *.* * (glob)
