rfscouto opened a new issue #11990:
URL: https://github.com/apache/shardingsphere/issues/11990
Posting this as a question, as I am not sure if this is a bug or bad usage
on my part.
I am currently using the latest master, and also liquibase (4.4.2).
I have the following properties:
```
SPRING_JPA_DATABASE=POSTGRESQL
- SPRING_JPA_HIBERNATE_DDL-AUTO=update
- SPRING_JPA_DATABASE-PLATFORM=org.hibernate.dialect.PostgreSQL9Dialect
- SPRING_JPA_PROPERTIES_HIBERNATE_TEMP_USE_JDBC_METADATA_DEFAULTS=false
-
SPRING_JPA_PROPERTIES_HIBERNATE_TEMP_USE_JDBC_LOB_NON_CONTEXTUAL_CREATION=true
- SPRING_JPA_PROPERTIES_OPEN-IN-VIEW=false
- SPRING_LIQUIBASE_DEFAULT-SCHEMA=public
- SPRING_SHARDINGSPHERE_ENABLED=false
- SPRING_SHARDINGSPHERE_ALTERNATEIMPL=true
- SPRING_SHARDINGSPHERE_SCHEMANAME=public
- SPRING_SHARDINGSPHERE_DATASOURCE_NAMES=testdatasource
-
SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_TYPE=com.zaxxer.hikari.HikariDataSource
-
SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_DRIVER-CLASS-NAME=org.postgresql.Driver
-
SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_JDBC-URL=${DATASOURCE_URL}
- SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_URL=${DATASOURCE_URL}
-
SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_USERNAME=${DATASOURCE_USERNAME}
-
SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_PASSWORD=${DATASOURCE_PASSWORD}
- SPRING_SHARDINGSPHERE_DATASOURCE_testdatasource_SCHEMA=public
-
SPRING_SHARDINGSPHERE_SHARDING_TABLES_MAIN_ACTUAL-DATA-NODES=testdatasource.main$->{0..1}
-
SPRING_SHARDINGSPHERE_SHARDING_TABLES_MAIN_TABLE-STRATEGY_INLINE_SHARDING-COLUMN=id
-
SPRING_SHARDINGSPHERE_SHARDING_TABLES_MAIN_TABLE-STRATEGY_INLINE_ALGORITHM-EXPRESSION=main$->{id}
- SPRING_SHARDINGSPHERE_SHARDING_TABLES_MAIN_KEY-GENERATOR_COLUMN=id
- SPRING_SHARDINGSPHERE_SHARDING_TABLES_MAIN_KEY-GENERATOR_TYPE=UUID
```
Liquibase, as part of it's initial setup, is trying to insert a row in
`databasechangeloglock` to start performing changes.
However, the insert fails with an exception:
```
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'liquibase' defined in class path resource
[org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]:
Invocation of init method failed; nested exception is
liquibase.exception.LockException: liquibase.exception.DatabaseException: null
[Failed SQL: INSERT INTO public.databasechangeloglock (ID, LOCKED) VALUES (1,
FALSE)]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1108)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
at com.main(main.java:15)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at
org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
Caused by: liquibase.exception.LockException:
liquibase.exception.DatabaseException: null [Failed SQL: INSERT INTO
public.databasechangeloglock (ID, LOCKED) VALUES (1, FALSE)]
at
liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:293)
at
liquibase.lockservice.StandardLockService.waitForLock(StandardLockService.java:211)
at liquibase.Liquibase.lambda$update$1(Liquibase.java:214)
at liquibase.Scope.lambda$child$0(Scope.java:166)
at liquibase.Scope.child(Scope.java:175)
at liquibase.Scope.child(Scope.java:165)
at liquibase.Scope.child(Scope.java:144)
at liquibase.Liquibase.runInScope(Liquibase.java:2404)
at liquibase.Liquibase.update(Liquibase.java:211)
at liquibase.Liquibase.update(Liquibase.java:197)
at
liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:314)
at
liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:269)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)
... 25 common frames omitted
Caused by: liquibase.exception.DatabaseException: null [Failed SQL: INSERT
INTO public.databasechangeloglock (ID, LOCKED) VALUES (1, FALSE)]
at
liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:393)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:82)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:150)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:134)
at
liquibase.lockservice.StandardLockService.init(StandardLockService.java:126)
at
liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:250)
... 38 common frames omitted
Caused by: java.lang.NullPointerException: null
at
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.impl.PostgreSQLStatementSQLVisitor.visitInsertTarget(PostgreSQLStatementSQLVisitor.java:563)
at
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.impl.PostgreSQLStatementSQLVisitor.visitInsertTarget(PostgreSQLStatementSQLVisitor.java:173)
at
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser$InsertTargetContext.accept(PostgreSQLStatementParser.java:1386)
at
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
at
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.impl.PostgreSQLStatementSQLVisitor.visitInsert(PostgreSQLStatementSQLVisitor.java:551)
at
org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.impl.PostgreSQLStatementSQLVisitor.visitInsert(PostgreSQLStatementSQLVisitor.java:173)
at
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser$InsertContext.accept(PostgreSQLStatementParser.java:1309)
at
org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine.visit(SQLVisitorEngine.java:49)
at
org.apache.shardingsphere.infra.parser.sql.SQLStatementParserExecutor.parse(SQLStatementParserExecutor.java:47)
at
org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine.parse(SQLStatementParserEngine.java:48)
at
org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine.parse0(ShardingSphereSQLParserEngine.java:67)
at
org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine.parse(ShardingSphereSQLParserEngine.java:56)
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.createLogicSQL(ShardingSphereStatement.java:364)
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.createExecutionContext(ShardingSphereStatement.java:372)
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute0(ShardingSphereStatement.java:336)
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement.execute(ShardingSphereStatement.java:292)
at
io.opentracing.contrib.jdbc.TracingStatement.execute(TracingStatement.java:148)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at
io.opentracing.contrib.common.WrapperProxy$1.invoke(WrapperProxy.java:73)
at com.sun.proxy.$Proxy207.execute(Unknown Source)
at
liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:389)
... 43 common frames omitted
```
<img width="1099" alt="Screenshot 2021-08-24 at 16 28 17"
src="https://user-images.githubusercontent.com/2998542/130636918-e3a23aa0-b26c-4c7f-bca0-b4a6d225039b.png">
Upon further debugging I noticed the colId (as per image above) is null.
At this point this parsing is very unfamiliar to me.
Any tips?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]