[postgis-devel] Creating PostGIS extension in the postgres database results in indefinite FUTEX wait?

sablok sablok at amazon.com
Sun Aug 21 16:12:07 PDT 2016


Hi PostGIS-DEVEL, So I am encountering this weird issue while executing the
command "CREATE EXTENSION postgis;", whenever I execute this command the
process that tries to create the extension goes into indefinite waiting. And
when I attach the process with strace it shows the following as the process
log the conclusion being indefinite waiting for a FUTEX, I am not too aware
as to how to go about solving this issue, I am new to both PostGIS and this
FUTEX stuff. Any help is appreciated but I need to circumvent this issue -:

/futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET,
0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = 0
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7b8, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily
unavailable)
futex(0x2b371fd9c790, FUTEX_WAKE, 1)    = 0
futex(0x2b371fc4c3a4, FUTEX_WAKE_OP, 1, 1, 0x2b371fc4c3a0, {FUTEX_OP_SET, 0,
FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2b371fc4c378, FUTEX_WAKE, 1)    = 1
futex(0x2b371fd9c7bc, FUTEX_WAIT, 1, NULL/



--
View this message in context: http://postgis.17.x6.nabble.com/Creating-PostGIS-extension-in-the-postgres-database-results-in-indefinite-FUTEX-wait-tp5010344.html
Sent from the PostGIS - Dev mailing list archive at Nabble.com.



More information about the postgis-devel mailing list