Thread: Seg fault in pgbench

Seg fault in pgbench

From
Jeff Janes
Date:
If I give pgbench an empty file, I get a segfault.

$ touch empty.sql
$ src/bin/pgbench/pgbench -T 60 -f empty.sql
starting vacuum...end.
Segmentation fault (core dumped)

This has been since this commit:

commit 8bea3d2219844887e170471f223ba100b3c17571
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:   Wed Jan 27 02:54:22 2016 +0100
   pgbench: improve multi-script support


I wasn't able to figure out which email thread corresponds to this commit.

Thanks,

Jeff



Re: Seg fault in pgbench

From
Alvaro Herrera
Date:
Jeff Janes wrote:
> If I give pgbench an empty file, I get a segfault.
> 
> $ touch empty.sql
> $ src/bin/pgbench/pgbench -T 60 -f empty.sql
> starting vacuum...end.
> Segmentation fault (core dumped)
> 
> This has been since this commit:
> 
> commit 8bea3d2219844887e170471f223ba100b3c17571
> Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
> Date:   Wed Jan 27 02:54:22 2016 +0100
> 
>     pgbench: improve multi-script support
> 
> 
> I wasn't able to figure out which email thread corresponds to this commit.

Thanks for the report, will fix.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: Seg fault in pgbench

From
Alvaro Herrera
Date:
Jeff Janes wrote:
> If I give pgbench an empty file, I get a segfault.
> 
> $ touch empty.sql
> $ src/bin/pgbench/pgbench -T 60 -f empty.sql
> starting vacuum...end.
> Segmentation fault (core dumped)

I fixed this by checking whether the first command is NULL; originally
this case was handled by checking whether the command list itself was
NULL.  It could also be fixed by having process_file() return NULL in
the case of an command-less file, but it seemed more churn for no actual
reason, since the case is going to be rejected by exiting the program
anyway.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: Seg fault in pgbench

From
Jeff Janes
Date:
On Fri, Feb 12, 2016 at 12:22 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
> Jeff Janes wrote:
>> If I give pgbench an empty file, I get a segfault.
>>
>> $ touch empty.sql
>> $ src/bin/pgbench/pgbench -T 60 -f empty.sql
>> starting vacuum...end.
>> Segmentation fault (core dumped)
>
> I fixed this by checking whether the first command is NULL; originally
> this case was handled by checking whether the command list itself was
> NULL.  It could also be fixed by having process_file() return NULL in
> the case of an command-less file, but it seemed more churn for no actual
> reason, since the case is going to be rejected by exiting the program
> anyway.
>

Looks good.  Thanks.



Re: Seg fault in pgbench

From
Fabien COELHO
Date:
> If I give pgbench an empty file, I get a segfault.
>
> $ touch empty.sql
> $ src/bin/pgbench/pgbench -T 60 -f empty.sql
> starting vacuum...end.
> Segmentation fault (core dumped)

Oops, shame on me:-(

I should have tested this one, especially as I tested it for other 
changes in pgbench...

Thanks for the report, and for Alvaro's fix.

-- 
Fabien.