首页 文章

管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest行2556

提问于
浏览
7

我使用percona-toolkit来分析mysql-slow-query(logs) . 所以命令非常基本:

pt-query-digest slowquery.log

现在结果(错误)是:

18.2s用户时间,100ms系统时间,35.61M rss,105.19M vsz

当前日期:2016年7月7日星期四17:18:43

主机名:Jammer

文件:slowquery.log

管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest行2556.将重试管道进程4(迭代)2次 .

.. ..(相同的结果打印两次)..

管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest第2556行 . 由于进程4(迭代)导致过多错误,因此终止管道 .

现在有关环境的细节,我使用的是Ubuntu 16.04,MariaDB 10.1.14,Percona-Toolkit 2.2.16

我在这里找到了一些东西bug-report,但它就像一个解决方法,并没有真正解决错误 . 即使在应用补丁之后,命令结果看起来也不够令人满意 .


我在ubuntu 16.04 MySql上面临同样的问题 . 我的慢查询日志的内容如下 .

/ usr / sbin / mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)) . 开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数/ usr / sbin / mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)) . 开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数时间:2016-12-08T05:13:55.140764Z User @ Host:root [root] @ localhost [] Id: 20 Query_time:0.003770 Lock_time:0.000200 Rows_sent:1 Rows_examined:2 SET timestamp = 1481174035; SELECT COUNT(*)FROM INFORMATION_SCHEMA.TRIGGERS;

错误是一样的:

管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr / bin / pt-query-digest第2556行 .

Ubuntu 16.04 MySql Ver 14.14 Distrib 5.7.16 pt-query-digest 2.2.16

3 回答

  • 1

    该错误似乎在当前版本的工具包(2.2.20)中得到修复,显然在之前版本中从2.2.17开始修复 .

    这个补丁似乎在 pt-query-digest 中为这个特定的地方做了诀窍:

    --- percona-toolkit-2.2.16/bin/pt-query-digest  2015-11-06 14:56:23.000000000 -0500
    +++ percona-toolkit-2.2.20/bin/pt-query-digest  2016-12-06 17:01:51.000000000 -0500
    @@ -2555,8 +2583,8 @@
        }
        return sprintf(
           $num =~ m/\./ || $n
    -         ? "%.${p}f%s"
    -         : '%d',
    +         ? '%1$.'.$p.'f%2$s'
    +         : '%1$d',
           $num, $units[$n]);
     }
    

    但正如原始问题和错误报告中所提到的,相当多的工具/功能受到影响,完整的错误修复包含许多小的更改:https://github.com/percona/percona-toolkit/pull/73/files

  • 0

    我可能会迟到 . 我想分享一下我如何克服同样的错误,因为它可能会帮助那些正在寻找答案的人 . 目前,Percona工具包的最新标签是3.0.9

    我尝试通过apt安装后运行pt-query-digest,通过下载deb文件作为Percona文档提供的方法,但任何一个都无济于事 . 这是同样的错误 .

    Pipeline process 5 (iteration) caused an error: 
    Redundant argument in sprintf at /usr/bin/pt-query-digest line (some line)
    

    1 - 所以我删除/删除了percona-toolkit的安装

    2 - 首先,我清理/更新了perl版本

    sudo apt-get install perl
    

    3 - 然后我在repository's自述文件中提到了来自源的Percona工具包 . 像这样 . 我使用了分支3.0 .

    git clone git@github.com:percona/percona-toolkit.git
    cd percona-toolkit
    perl Makefile.PL
    make
    make test
    make install
    

    而已 . 希望这对某人有所帮助 .

  • 7

    我在这个版本中发现错误percona-toolkit-3.0.12-1.el7.x86_64.rpm和percona-toolkit-3.0.10-1.el7.x86_64.rpm很好,percona-toolkit对我非常有用

    at ./pt-query-digest line 9302.
    Terminating pipeline because process 4 (iteration) caused too many errors.
    

相关问题