[postgis-tickets] [PostGIS] #3653: ERROR: could not load library "/usr/lib/postgresql/9.5/lib/rtpostgis-2.2.so": libnetcdf.so.11: cannot map zero-fill pages
PostGIS
trac at osgeo.org
Tue Oct 4 08:51:19 PDT 2016
#3653: ERROR: could not load library
"/usr/lib/postgresql/9.5/lib/rtpostgis-2.2.so": libnetcdf.so.11: cannot map
zero-fill pages
-------------------------+---------------------------
Reporter: reecefowell | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 2.3.1
Component: postgis | Version: 2.2.x
Keywords: |
-------------------------+---------------------------
I am using the PostGIS with Hibernate-Spatial for a Java Spring project,
the version output from PostGreSQL is:
"PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit POSTGIS="2.2.1 r14555"
GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.2, 08 September 2015"
GDAL="GDAL 1.11.3, released 2015/09/16" LIBXML="2.9.3" (...)"
When running tests with Concordion, after the 6th example passes, all
subsequent tests fail.
The error I get is:
{{{
2016-10-03 14:07:28.722 INFO 35396 --- [ main]
o.f.c.i.metadatatable.MetaDataTableImpl : Creating Metadata table:
"public"."schema_version"
2016-10-03 14:07:28.738 INFO 35396 --- [ main]
o.f.core.internal.command.DbMigrate : Current version of schema
"public": << Empty Schema >>
2016-10-03 14:07:28.738 INFO 35396 --- [ main]
o.f.core.internal.command.DbMigrate : Migrating schema "public" to
version 1 - Initial
2016-10-03 14:07:29.703 ERROR 35396 --- [ main]
o.f.core.internal.command.DbMigrate : Migration of schema "public" to
version 1 failed! Changes successfully rolled back.
org.flywaydb.core.internal.dbsupport.FlywaySqlScriptException:
Migration V1__Initial.sql failed
--------------------------------
SQL State : XX000
Error Code : 0
Message : ERROR: could not load library
"/usr/lib/postgresql/9.5/lib/rtpostgis-2.2.so": libnetcdf.so.11: cannot
map zero-fill pages
Location : db/migration/V1__Initial.sql
(/Users/reecefowell/Projects/Spring/bvddy/matchmaking-
service/build/resources/main/db/migration/V1__Initial.sql)
Line : 1
Statement : CREATE EXTENSION IF NOT EXISTS Postgis
at
org.flywaydb.core.internal.dbsupport.SqlScript.execute(SqlScript.java:117)
at
org.flywaydb.core.internal.resolver.sql.SqlMigrationExecutor.execute(SqlMigrationExecutor.java:71)
at
org.flywaydb.core.internal.command.DbMigrate$5.doInTransaction(DbMigrate.java:284)
at
org.flywaydb.core.internal.command.DbMigrate$5.doInTransaction(DbMigrate.java:282)
at
org.flywaydb.core.internal.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:72)
at
org.flywaydb.core.internal.command.DbMigrate.applyMigration(DbMigrate.java:282)
at
org.flywaydb.core.internal.command.DbMigrate.access$800(DbMigrate.java:46)
at
org.flywaydb.core.internal.command.DbMigrate$2.doInTransaction(DbMigrate.java:207)
at
org.flywaydb.core.internal.command.DbMigrate$2.doInTransaction(DbMigrate.java:156)
at
org.flywaydb.core.internal.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:72)
at
org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:156)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:1059)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:1006)
at org.flywaydb.core.Flyway.execute(Flyway.java:1418)
at org.flywaydb.core.Flyway.migrate(Flyway.java:1006)
at com.bvddy.util.DatabaseUtil.migrate(DatabaseUtil.java:44)
at com.bvddy.util.DatabaseUtil.cleanAndMigrate(DatabaseUtil.java:19)
at com.bvddy.test.spec.AbstractSpec.setUp(AbstractSpec.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at
org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at
org.springframework.test.context.junit4.statements.RunPrepareTestInstanceCallbacks.evaluate(RunPrepareTestInstanceCallbacks.java:64)
at
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at
org.springframework.test.context.junit4.statements.SpringFailOnTimeout.evaluate(SpringFailOnTimeout.java:87)
at
org.springframework.test.context.junit4.statements.ProfileValueChecker.evaluate(ProfileValueChecker.java:101)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at
org.concordion.integration.junit4.ConcordionRunner.runChild(ConcordionRunner.java:187)
at
org.concordion.integration.junit4.ConcordionRunner.runChild(ConcordionRunner.java:23)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at
org.springframework.test.context.junit4.statements.ProfileValueChecker.evaluate(ProfileValueChecker.java:101)
at
org.springframework.test.context.junit4.rules.SpringClassRule$TestContextManagerCacheEvictor.evaluate(SpringClassRule.java:242)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at
org.concordion.integration.junit4.ConcordionRunner.run(ConcordionRunner.java:146)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
at
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: org.postgresql.util.PSQLException: ERROR: could not load
library "/usr/lib/postgresql/9.5/lib/rtpostgis-2.2.so": libnetcdf.so.11:
cannot map zero-fill pages
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2310)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2023)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:421)
at
org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:318)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:310)
at
org.flywaydb.core.internal.dbsupport.JdbcTemplate.executeStatement(JdbcTemplate.java:238)
at
org.flywaydb.core.internal.dbsupport.SqlScript.execute(SqlScript.java:114)
... 65 more
}}}
After this is output on first test that fails, all other tests show that
it could not connect to the database.
My Schema looks looks like this:
{{{
CREATE EXTENSION IF NOT EXISTS Postgis;
CREATE TABLE "user" (
id bigint NOT NULL,
first_name varchar NOT NULL,
search_radius int,
latitude double precision,
longitude double precision,
location geography(Point, 4326),
PRIMARY KEY (id)
);
}}}
Each test runs the following to clean the database state:
{{{
@Component
public class DatabaseUtil {
@Autowired
private DataSource dataSource;
@Autowired
private Flyway flyway;
public void cleanAndMigrate() {
clean();
migrate();
}
private void clean() {
try {
dataSource.getConnection();
} catch (SQLException e) {
}
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.execute("DROP SCHEMA IF EXISTS public CASCADE");
jdbcTemplate.execute("CREATE SCHEMA public");
}
private void migrate() {
flyway.migrate();
}
}
}}}
From what I can tell, it looks like maybe the process of generating the
table spatial_ref_sys could be eating up all memory.
Whatever it is, it seems to kill the postgresql server and cause all tests
to fail. Could this be a memory leak?
My spring setup.
concordion:2.0.2
flyway-core:3.2.1
hibernate-core:5.0.9.Final
hibernate-spatial:5.0.9.Final
Whats strange is that if I paste the following into pgAdmin3 and run
arbitrary SQL over and over by slamming the run button, it doesn't seem to
fail. What could be causing this disparity?
{{{
DROP SCHEMA IF EXISTS public CASCADE;
CREATE SCHEMA public;
CREATE EXTENSION IF NOT EXISTS Postgis;
CREATE TABLE "user" (
id bigint NOT NULL,
first_name varchar NOT NULL,
search_radius int,
latitude double precision,
longitude double precision,
location geography(Point, 4326),
PRIMARY KEY (id)
);
}}}
As per the ticket process, I tried to use an earlier version but in Ubuntu
there is no version of PostGIS above or below 2.2. I install the
following:
- postgresql-9.5
- postgresql-9.5-postgis-2.2
- pgadmin3
- postgresql-contrib-9.5
- python-psycopg2
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3653>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list