Opened 10 months ago

Closed 4 months ago

#3994 closed defect (fixed)

FreeBSD 32 failure on raster tests

Reported by: robe Owned by: Bborie Park
Priority: medium Milestone: PostGIS 2.5.0
Component: raster Version: trunk
Keywords: Cc:

Description

After @komzpa fixed the brin regress issue, raster regress tests were able to run, and crashed thus uncovering a raster gosher (at least fro freeBSD 32-bit)

The regress log is long and painful so I'll try to paste the highlights from:

https://debbie.postgis.net/job/PostGIS_Worker_Run/label=bessie32/238/consoleFull

19:39:41   Postgis 2.5.0dev - r16332 - 2018-01-18 14:30:47
19:39:41   scripts 2.5.0dev r16332
19:39:41   raster scripts 2.5.0dev r16332
19:39:41   GEOS: 3.6.2-CAPI-1.10.2 4d2925d6
19:39:41   PROJ: Rel. 4.9.3, 15 August 2016
19:39:41   GDAL: GDAL 2.2.3, released 2017/11/20

19:39:41 Running tests
19:39:41 
19:39:41  check_gdal .. ok 
19:39:41  load_outdb ... ok 
19:39:41  check_raster_columns .. ok 
19:39:42  check_raster_overviews .. ok 
19:39:43  rt_io .. failed (diff expected obtained: /home/jenkins/tmp/pgis_reg_74cc9ca0d97f4e07b16484137470267a82dc51f2/test_5_diff)
19:39:52 -----------------------------------------------------------------------------
19:39:52 --- rt_io_expected	2018-01-18 14:30:22.886896000 +0000
19:39:52 +++ /home/jenkins/tmp/pgis_reg_74cc9ca0d97f4e07b16484137470267a82dc51f2/test_5_out	2018-01-18 14:37:37.640671000 +0000
19:39:52 @@ -1,16 +1,4 @@
19:39:52 -1x1 no bands, no transform|t|t
:
19:39:52 -ERROR:  rt_band_from_wkb: Invalid value 2 for pixel of type 1BB
19:39:52 -ERROR:  rt_band_from_wkb: Invalid value 4 for pixel of type 2BUI
19:39:52 -ERROR:  rt_band_from_wkb: Invalid value 16 for pixel of type 4BUI
19:39:52 +server closed the connection unexpectedly
19:39:52 +	This probably means the server terminated abnormally
19:39:52 +	before or while processing the request.
19:39:52 +connection to server was lost
:

There are a bunch like this with server trying to stand up and then crash again. It's hard to tell which regresses are real or just result of server trying to get up from being punched.

Change History (5)

comment:1 Changed 8 months ago by robe

Milestone: PostGIS 2.4.4PostGIS 2.5.0

comment:2 Changed 4 months ago by komzpa

In 16645:

Fix raster notices.

References #3994
Closes https://github.com/postgis/postgis/pull/271

comment:3 Changed 4 months ago by komzpa

got out some traces:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `postgres: 9.6/main: root postgis_reg [local] SELECT                           '.
Program terminated with signal SIGABRT, Aborted.
#0  0xb7ef9cf9 in __kernel_vsyscall ()

Thread 1 (Thread 0xb4eb3a80 (LWP 3959)):
#0  0xb7ef9cf9 in __kernel_vsyscall ()
#1  0xb76987e2 in __libc_signal_restore_set (set=0xbfd6ddcc) at ../sysdeps/unix/sysv/linux/nptl-signals.h:80
#2  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3  0xb7699f51 in __GI_abort () at abort.c:90
#4  0xb7690655 in __assert_fail_base (fmt=0xb77e7ca8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0xac06c190 "!((ptr - ret) % pixbytes)", file=0xac06c148 "rt_serialize.c", line=699, function=0xac06c4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:92
#5  0xb76906db in __GI___assert_fail (assertion=0xac06c190 "!((ptr - ret) % pixbytes)", file=0xac06c148 "rt_serialize.c", line=699, function=0xac06c4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:101
#6  0xac02d58b in rt_raster_serialize (raster=<optimized out>) at rt_serialize.c:664
#7  0xac00001a in RASTER_in (fcinfo=0xbfd6e134) at rtpg_inout.c:59
#8  0x00905275 in InputFunctionCall ()
#9  0x006d6dce in ?? ()
#10 0x006d6dab in ?? ()
#11 0x006d5341 in ?? ()
#12 0x006d486d in ?? ()
#13 0x006db2c9 in ExecProject ()
#14 0x006db6d6 in ExecScan ()
#15 0x006f0cf6 in ExecSeqScan ()
#16 0x006d4251 in ExecProcNode ()
#17 0x006d01d8 in standard_ExecutorRun ()
#18 0x007f0506 in ?? ()
#19 0x007f1b8f in PortalRun ()
#20 0x007eedba in PostgresMain ()
#21 0x0056699e in ?? ()
#22 0x00788526 in PostmasterMain ()
#23 0x00568104 in main ()
[New LWP 4074]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `postgres: 9.6/main: root postgis_reg [local] SELECT                           '.
Program terminated with signal SIGABRT, Aborted.
#0  0xb7ef9cf9 in __kernel_vsyscall ()

Thread 1 (Thread 0xb4eb3a80 (LWP 4074)):
#0  0xb7ef9cf9 in __kernel_vsyscall ()
#1  0xb76987e2 in __libc_signal_restore_set (set=0xbfd6d70c) at ../sysdeps/unix/sysv/linux/nptl-signals.h:80
#2  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3  0xb7699f51 in __GI_abort () at abort.c:90
#4  0xb7690655 in __assert_fail_base (fmt=0xb77e7ca8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0xac06c190 "!((ptr - ret) % pixbytes)", file=0xac06c148 "rt_serialize.c", line=699, function=0xac06c4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:92
#5  0xb76906db in __GI___assert_fail (assertion=0xac06c190 "!((ptr - ret) % pixbytes)", file=0xac06c148 "rt_serialize.c", line=699, function=0xac06c4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:101
#6  0xac02d58b in rt_raster_serialize (raster=<optimized out>) at rt_serialize.c:664
#7  0xac00c3c0 in RASTER_addBand (fcinfo=0x24557c0) at rtpg_create.c:330
#8  0x006d53a2 in ?? ()
#9  0x006db2c9 in ExecProject ()
#10 0x006f0035 in ExecResult ()
#11 0x006d42c9 in ExecProcNode ()
#12 0x006d01d8 in standard_ExecutorRun ()
#13 0x006df01f in fmgr_sql ()
#14 0x006d53a2 in ?? ()
#15 0x006d9d62 in ExecEvalExprSwitchContext ()
#16 0x007683f3 in ?? ()
#17 0x00769c1a in ?? ()
#18 0x0076ad29 in ?? ()
#19 0x0071398a in expression_tree_mutator ()
#20 0x0076a19a in ?? ()
#21 0x0076ad29 in ?? ()
#22 0x0071398a in expression_tree_mutator ()
#23 0x0076a19a in ?? ()
#24 0x0076ad29 in ?? ()
#25 0x0071398a in expression_tree_mutator ()
#26 0x0076a19a in ?? ()
#27 0x0076ad29 in ?? ()
#28 0x0071398a in expression_tree_mutator ()
#29 0x0076a19a in ?? ()
#30 0x0076ad29 in ?? ()
#31 0x00712f70 in expression_tree_mutator ()
#32 0x0076a78c in ?? ()
#33 0x0071398a in expression_tree_mutator ()
#34 0x0076a78c in ?? ()
#35 0x0076c56d in eval_const_expressions ()
#36 0x0075672d in ?? ()
#37 0x0075abfe in subquery_planner ()
#38 0x0075b9f5 in standard_planner ()
#39 0x007ecbdb in pg_plan_query ()
#40 0x007eccbf in pg_plan_queries ()
#41 0x007eef12 in PostgresMain ()
#42 0x0056699e in ?? ()
#43 0x00788526 in PostmasterMain ()
#44 0x00568104 in main ()
[New LWP 4160]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `postgres: 9.6/main: root postgis_reg [local] SELECT                           '.
Program terminated with signal SIGABRT, Aborted.
#0  0xb7ef9cf9 in __kernel_vsyscall ()

Thread 1 (Thread 0xb4eb3a80 (LWP 4160)):
#0  0xb7ef9cf9 in __kernel_vsyscall ()
#1  0xb76987e2 in __libc_signal_restore_set (set=0xbfd6dc3c) at ../sysdeps/unix/sysv/linux/nptl-signals.h:80
#2  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3  0xb7699f51 in __GI_abort () at abort.c:90
#4  0xb7690655 in __assert_fail_base (fmt=0xb77e7ca8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0xac03e190 "!((ptr - ret) % pixbytes)", file=0xac03e148 "rt_serialize.c", line=699, function=0xac03e4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:92
#5  0xb76906db in __GI___assert_fail (assertion=0xac03e190 "!((ptr - ret) % pixbytes)", file=0xac03e148 "rt_serialize.c", line=699, function=0xac03e4a8 <__PRETTY_FUNCTION__.41302> "rt_raster_serialize") at assert.c:101
#6  0xabfff58b in rt_raster_serialize (raster=<optimized out>) at rt_serialize.c:664
#7  0xabfde3c0 in RASTER_addBand (fcinfo=0x23d3cc8) at rtpg_create.c:330
#8  0x006d53a2 in ?? ()
#9  0xac0842ff in ?? () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#10 0xac085fdf in ?? () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#11 0xac0884bd in ?? () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#12 0xac08a8c3 in ?? () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#13 0xac08ab0f in plpgsql_exec_function () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#14 0xac07f5f9 in plpgsql_call_handler () from /usr/lib/postgresql/9.6/lib/plpgsql.so
#15 0x006d53a2 in ?? ()
#16 0x006db2c9 in ExecProject ()
#17 0x006f0035 in ExecResult ()
#18 0x006d42c9 in ExecProcNode ()
#19 0x006d01d8 in standard_ExecutorRun ()
#20 0x007f0506 in ?? ()
#21 0x007f1b8f in PortalRun ()
#22 0x007eedba in PostgresMain ()
#23 0x0056699e in ?? ()
#24 0x00788526 in PostmasterMain ()
#25 0x00568104 in main ()

comment:4 Changed 4 months ago by komzpa

In 16654:

32bit allocations are 4-byte aligned, not 8-byte aligned.

Fix 8-bit alignment assumption in padding to match assert.

Passes tests on 32bit Ubuntu Artful.

References #3994

comment:5 Changed 4 months ago by komzpa

Resolution: fixed
Status: newclosed

bessie32 passes tests for last 22 hours.

Note: See TracTickets for help on using tickets.