-
More issues with schema:
AbstractComponent.processStanzaPacket() SEVERE: tigase.pubsub.repository.RepositoryException: Problem accessing repository. when processing from=sess-man@build.xmpp-test.net, to=null, DATA=<iq type="set" from="all-xmpp-test@test-d/def-user-resource" xmlns="jabber:client" id="create1" to="pubsub.test-d"> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <create node="princely_musings"/> <configure> <x type="submit" xmlns="jabber:x:data"> <field type="hidden" var="FORM_TYPE"> <value>http://jabber.org/protocol/pubsub#node_config</value> </field> <field var="pubsub#notify_sub_aff_state"><value>0</value></field> </x> </configure> </pubsub> </iq>, SIZE=460, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=AUTH, TYPE=set java.lang.RuntimeException: tigase.pubsub.repository.RepositoryException: Problem accessing repository. at tigase.pubsub.modules.NodeCreateModule.process(NodeCreateModule.java:269) at tigase.component2.modules.ModulesManager.process(ModulesManager.java:87) at tigase.component2.AbstractComponent.processStanzaPacket(AbstractComponent.java:200) at tigase.component2.AbstractComponent.processPacket(AbstractComponent.java:188) at tigase.server.AbstractMessageReceiver$QueueListener.run(AbstractMessageReceiver.java:1475) Caused by: tigase.pubsub.repository.RepositoryException: Problem accessing repository. at tigase.pubsub.repository.PubSubDAOJDBC.createNode(PubSubDAOJDBC.java:207) at tigase.pubsub.repository.PubSubDAOPool.createNode(PubSubDAOPool.java:86) at tigase.pubsub.repository.cached.CachedPubSubRepository.createNode(CachedPubSubRepository.java:355) at tigase.pubsub.repository.PubSubRepositoryWrapper.createNode(PubSubRepositoryWrapper.java:23) at tigase.pubsub.modules.NodeCreateModule.process(NodeCreateModule.java:219) at tigase.component2.modules.ModulesManager.process(ModulesManager.java:87) at tigase.component2.AbstractComponent.processStanzaPacket(AbstractComponent.java:200) at tigase.component2.AbstractComponent.processPacket(AbstractComponent.java:188) at tigase.server.AbstractMessageReceiver$QueueListener.run(AbstractMessageReceiver.java:1475) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '_jid_id' in 'field list' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1051) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3563) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3495) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2693) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2102) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2261) at com.mysql.jdbc.CallableStatement.executeQuery(CallableStatement.java:912) at tigase.pubsub.repository.PubSubDAOJDBC.createNode(PubSubDAOJDBC.java:193) at tigase.pubsub.repository.PubSubDAOPool.createNode(PubSubDAOPool.java:86) at tigase.pubsub.repository.cached.CachedPubSubRepository.createNode(CachedPubSubRepository.java:355) at tigase.pubsub.repository.PubSubRepositoryWrapper.createNode(PubSubRepositoryWrapper.java:23) at tigase.pubsub.modules.NodeCreateModule.process(NodeCreateModule.java:219) at tigase.component2.modules.ModulesManager.process(ModulesManager.java:87) at tigase.component2.AbstractComponent.processStanzaPacket(AbstractComponent.java:200) at tigase.component2.AbstractComponent.processPacket(AbstractComponent.java:188) at tigase.server.AbstractMessageReceiver$QueueListener.run(AbstractMessageReceiver.java:1475)
-
Reported here: https://projects.tigase.org/boards/9/topics/4823?r=4921#message-4921
Installation is ok, but after startup Tigase shut down with:
--------------------------------------------- ERROR! Terminating the server process. PubSub Component is not compatible with database schema which exists in jdbc:postgresql://localhost/tigasedb_pg?user=tigase&password=tigase12 This component uses newer schema. To continue use of currently deployed schema, please use older version of PubSub Component. To convert database to new schema please see: https://projects.tigase.org/projects/tigase-pubsub/wiki/PubSub_database_schema_conversion
-
As for issue with PosgreSQL schema, I checked and all is working fine if Tigase XMPP Server uses same user for database schema creation and later usage.
In case if database schema is created with other user than user used later by Tigase XMPP Server this issue appears, as due to insufficient permissions default Tigase database user cannot execute procedure used verify if database contains proper version of schema.
It is hard to tell how to fix it (I'm open on suggestions) but I think that we should print exception which causes Tigase XMPP Server to shutdown, so it would be easier for everyone to understand cause of this situation.
Do you agree or have other suggestions?
-
Andrzej Wójcik wrote:
In case if database schema is created with other user than user used later by Tigase XMPP Server this issue appears, as due to insufficient permissions default Tigase database user cannot execute procedure used verify if database contains proper version of schema.
This is with the default installation:
$ java -jar tigase-server-7.0.1-b3810.jar Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. Condition already registered. May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Table schema found: public, database type: postgresql, database driver: org.postgresql.Driver May 27, 2015 1:29:27 PM tigase.db.jdbc.DataRepositoryImpl initRepository INFO: Initialized database connection: jdbc:postgresql://localhost/tigasedb_ps?user=root
Checking connection to the database Connection OK Checking if the database exists Doesn't exist, creating... OK Checking the database schema New schema loaded OK Checking whether the database needs conversion Conversion not needed Adding XMPP admin accounts All users added Post installation actions Finalizing... completed OK Loading socks5 component schema Loading socks5 schema... completed OK Loading PubSub component schema Loading PubSub schema... completed OK
Yields in logs after startup:
/Applications/Tigase-7.0.1-b3810 $ cat logs/tigase-console.log STARTED Tigase Wed May 27 13:30:06 CEST 2015 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=32m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.xml.XMLUtils} componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.util.ClassUtil} componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.server.XMPPServer} 2015-05-27 13:30:06.330 [main] DNSResolver.<clinit>() WARNING: Resolving default host name: atlantiscity.local took: 59 2015-05-27 13:30:06.360 [main] ConfiguratorAbstract.parseArgs() CONFIG: Setting defaults: --property-file = etc/init.properties 2015-05-27 13:30:06.360 [main] ConfiguratorAbstract.parseArgs() CONFIG: Loading initial properties from property file: etc/init.properties 2015-05-27 13:30:06.361 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--cluster-mode=true) 2015-05-27 13:30:06.362 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (config-type=--gen-config-def) 2015-05-27 13:30:06.362 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--debug=server) 2015-05-27 13:30:06.362 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--user-db=pgsql) 2015-05-27 13:30:06.362 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--admins=admin@atlantiscity) 2015-05-27 13:30:06.362 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--user-db-uri=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12) 2015-05-27 13:30:06.363 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--virt-hosts=atlantiscity) 2015-05-27 13:30:06.363 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-name-4=message-archive) 2015-05-27 13:30:06.363 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-class-4=tigase.archive.MessageArchiveComponent) 2015-05-27 13:30:06.363 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-name-3=proxy) 2015-05-27 13:30:06.364 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-class-3=tigase.socks5.Socks5ProxyComponent) 2015-05-27 13:30:06.364 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-name-2=pubsub) 2015-05-27 13:30:06.364 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-class-2=tigase.pubsub.PubSubComponent) 2015-05-27 13:30:06.364 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-class-1=tigase.muc.MUCComponent) 2015-05-27 13:30:06.364 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--comp-name-1=muc) 2015-05-27 13:30:06.365 [main] ConfiguratorAbstract.parseArgs() CONFIG: Added default config parameter: (--sm-plugins=+message-archive-xep-0136) 2015-05-27 13:30:06.373 [main] AbstractMessageReceiver.setMaxQueueSize() FINEST: message-router maxQueueSize: 466, maxInQueueSize: 28, maxOutQueueSize: 932 2015-05-27 13:30:06.377 [main] MessageRouter.addRegistrator() INFO: Adding registrator: Configurator 2015-05-27 13:30:06.377 [main] MessageRouter.addComponent() INFO: Adding component: 2015-05-27 13:30:06.378 [main] ConfiguratorAbstract.componentAdded() CONFIG: component: basic-conf 2015-05-27 13:30:06.378 [main] ConfiguratorAbstract.setup() CONFIG: Setting up component: basic-conf 2015-05-27 13:30:06.380 [main] ConfiguratorAbstract.setup() CONFIG: Component basic-conf defaults: {component-id=basic-conf@atlantiscity.local, def-hostname=atlantiscity.local, admins=[Ljava.lang.String;@6e2c634b, scripts-dir=scripts/admin, command/ALL=ADMIN, logging/.level=CONFIG, logging/handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler, logging/java.util.logging.ConsoleHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.ConsoleHandler.level=WARNING, logging/java.util.logging.FileHandler.append=true, logging/java.util.logging.FileHandler.count=5, logging/java.util.logging.FileHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.FileHandler.limit=10000000, logging/java.util.logging.FileHandler.pattern=logs/tigase.log, logging/tigase.useParentHandlers=true, logging/java.util.logging.FileHandler.level=ALL, logging/tigase.server.level=ALL, user-domain-repo-pool=tigase.db.UserRepositoryMDImpl, auth-domain-repo-pool=tigase.db.AuthRepositoryMDImpl, user-repo-pool-size=10, data-repo-pool-size=10, user-repo-class=pgsql, user-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, auth-repo-class=tigase.db.jdbc.TigaseCustomAuth, auth-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, ssl-container-class=tigase.io.SSLContextContainer, ssl-certs-location=certs/, ssl-def-cert-domain=default, config-dump-file=etc/config-dump.properties} 2015-05-27 13:30:06.380 [main] ConfiguratorAbstract.setup() CONFIG: Component basic-conf configuration: {component-id=basic-conf@atlantiscity.local, def-hostname=atlantiscity.local, admins=[Ljava.lang.String;@6e2c634b, scripts-dir=scripts/admin, command/ALL=ADMIN, logging/.level=CONFIG, logging/handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler, logging/java.util.logging.ConsoleHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.ConsoleHandler.level=WARNING, logging/java.util.logging.FileHandler.append=true, logging/java.util.logging.FileHandler.count=5, logging/java.util.logging.FileHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.FileHandler.limit=10000000, logging/java.util.logging.FileHandler.pattern=logs/tigase.log, logging/tigase.useParentHandlers=true, logging/java.util.logging.FileHandler.level=ALL, logging/tigase.server.level=ALL, user-domain-repo-pool=tigase.db.UserRepositoryMDImpl, auth-domain-repo-pool=tigase.db.AuthRepositoryMDImpl, user-repo-pool-size=10, data-repo-pool-size=10, user-repo-class=pgsql, user-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, auth-repo-class=tigase.db.jdbc.TigaseCustomAuth, auth-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, ssl-container-class=tigase.io.SSLContextContainer, ssl-certs-location=certs/, ssl-def-cert-domain=default, config-dump-file=etc/config-dump.properties} 2015-05-27 13:30:06.383 [main] ConfiguratorAbstract.setProperties() INFO: Propeties size is 33, and here are all propeties: {component-id=basic-conf@atlantiscity.local, def-hostname=atlantiscity.local, admins=[Ljava.lang.String;@6e2c634b, scripts-dir=scripts/admin, command/ALL=ADMIN, logging/.level=CONFIG, logging/handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler, logging/java.util.logging.ConsoleHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.ConsoleHandler.level=WARNING, logging/java.util.logging.FileHandler.append=true, logging/java.util.logging.FileHandler.count=5, logging/java.util.logging.FileHandler.formatter=tigase.util.LogFormatter, logging/java.util.logging.FileHandler.limit=10000000, logging/java.util.logging.FileHandler.pattern=logs/tigase.log, logging/tigase.useParentHandlers=true, logging/java.util.logging.FileHandler.level=ALL, logging/tigase.server.level=ALL, user-domain-repo-pool=tigase.db.UserRepositoryMDImpl, auth-domain-repo-pool=tigase.db.AuthRepositoryMDImpl, user-repo-pool-size=10, data-repo-pool-size=10, user-repo-class=pgsql, user-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, auth-repo-class=tigase.db.jdbc.TigaseCustomAuth, auth-repo-url=jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12, ssl-container-class=tigase.io.SSLContextContainer, ssl-certs-location=certs/, ssl-def-cert-domain=default, config-dump-file=etc/config-dump.properties, shared-user-repo=null, shared-user-repo-params=null, shared-auth-repo=null, shared-auth-repo-params=null} 2015-05-27 13:30:08.140 [main] SimpleCache.<init>() WARNING: Tigase cache turned off. 2015-05-27 13:30:08.489 [main] VHostManager.setProperties() WARNING: {atlantiscity=Domain: atlantiscity, enabled: true, anonym: true, register: true, maxusers: 0, tls: false, s2sSecret: 6e25dbef-7be7-448e-b29c-a1df074946ed, domainFilter: ALL, domainFilterDomains: null, c2sPortsAllowed: null, saslAllowedMechanisms: null} 2015-05-27 13:30:08.643 [main] SimpleCache.<init>() WARNING: Tigase cache turned off. Loading component: amp :: componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.cluster.AmpComponentClustered} Loading component: bosh :: componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.cluster.BoshConnectionClustered} Loading component: c2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.cluster.ClientConnectionClustered} 2015-05-27 13:30:08.851 [main] ClusterConnectionManager.itemAdded() WARNING: Incorrect ClusterRepoItem, skipping connection attempt: atlantiscity.local:d91a683b7f524cf9d690609fb14ab2a31c69084801841a37fdd4c309ab381108:5277:0:0.0:0.0 Loading component: cl-comp :: componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.cluster.ClusterConnectionManager} Loading component: message-archive :: componentInfo{Title=Tigase Message Archiving Component, Version=1.1.0-b71/c4003eb3, Class=tigase.archive.MessageArchiveComponent} Loading component: monitor :: componentInfo{Title=Tigase XMPP Server, Version=7.0.1-b3810/2cf8a210 (2015-03-25/17:34:46), Class=tigase.cluster.MonitorClustered} 2015-05-27 13:30:09.507 [main] SimpleCache.<init>() WARNING: Tigase cache turned off. Loading component: muc :: componentInfo{Title=Tigase MUC, Version=2.3.0-b389/879168a9, Class=tigase.muc.MUCComponent} Loading component: proxy :: componentInfo{Title=Tigase Socks5 Component, Version=1.1.0-b48/f5c8a08c, Class=tigase.socks5.Socks5ProxyComponent} --------------------------------------------- ERROR! Terminating the server process. PubSub Component is not compatible with database schema which exists in jdbc:postgresql://localhost/tigasedb_ps?user=tigase_inst&password=tigase12 This component uses newer schema. To continue use of currently deployed schema, please use older version of PubSub Component. To convert database to new schema please see: https://projects.tigase.org/projects/tigase-pubsub/wiki/PubSub_database_schema_conversion ShutdownThread started... 2015-05-27 13:30:09.778 [MainShutdownThread] MonitorRuntime$MainShutdownThread.run() WARNING: ShutdownThread started... == Removing cluster_nodes item: atlantiscity.local Total number of threads: 432 No locked threads. ShutdownThread finished...
It is hard to tell how to fix it (I'm open on suggestions) but I think that we should print exception which causes Tigase XMPP Server to shutdown, so it would be easier for everyone to understand cause of this situation.
Do you agree or have other suggestions?
Printing exception is definitely a good idea.
Type |
Bug
|
Priority |
Blocker
|
Assignee | |
RedmineID |
1700
|
Spent time |
0
|
While loading schemas:
Derby:
SQL Server:
MySQL
no issue
Postgresql
Reported here: https://projects.tigase.org/boards/9/topics/4823?r=4921#message-4921
Installation is ok, but after startup Tigase shut down with: