Projects tigase _server server-core Issues #703
Guided setup does not use proper schema file (#703)
Closed
Daniel Wisnewski opened 8 years ago
Due Date
2016-08-23

Both web installer and JAR installer do not complete the proper database setup, Database schema is left at v5.1 and is not upgraded to v7.1. Web installer does show schema version error, JAR/EXE installer show everything is OK (likely a remnant from when we did not upgrade to check schema ver)

Proper Database schema files are present.

Found in v 7.1.0 b4277.

wojciech.kapcia@tigase.net commented 8 years ago

Daniel Wisnewski wrote:

Both web installer and JAR installer do not complete the proper database setup, Database schema is left at v5.1 and is not upgraded to v7.1.

It was working correctly a while back.

Web installer does show schema version error, JAR/EXE installer show everything is OK (likely a remnant from when we did not upgrade to check schema ver)

Proper Database schema files are present.

Found in v 7.1.0 b4277.

Most important question - which databases? All of them?

Daniel Wisnewski commented 8 years ago

I can confirm for both derby and MySQL, checking SQL server and PostGRESQL

Daniel Wisnewski commented 8 years ago

All four databases do not install new schema, they are all v5.1. I think the problem lies in the installation script.

wojciech.kapcia@tigase.net commented 8 years ago

Daniel Wisnewski wrote:

Both web installer and JAR installer do not complete the proper database setup, Database schema is left at v5.1 and is not upgraded to v7.1.

OK, web installer uses DBschema loader, which is used on a daily bases to prepare databases for TTS runs. I just quickly tested jar installer and it in fact ends with 5.1. I'll look into it - probably schema files for 7.1. are not run (judging from the logs).

In the meantime, if you have spare time - could you try bisecting the installer packages of 7.1 and figure out when it started (i.e. pick one from a couple of months back that was working - if there were such -- I think it was, as we were correcting lots of errors in the installer a while back) and then pick a date/release between current failed and last working - if it's not working - pick older, if it's working, pick newer.

Daniel Wisnewski commented 8 years ago

The Exe/Jar Installer issue is a very old one, I forgot we had it since i've been progressively upgrading local installations. I don't think we've ever fixed this issue since the schema change to v7.1 since it was decided the installer was going to be depreciated. I believe we should resolve this since we're still planning to have the installer with v7.1.0.

As for the web-based installer, it works OK until b4277 so it's a recent one, I tested versions back to b4225 in June of this year, they all are OK. Oddly, b4279 works OK and does not present this issue. Perhaps an error in building b4277.

wojciech.kapcia@tigase.net commented 8 years ago

Daniel Wisnewski wrote:

The Exe/Jar Installer issue is a very old one, I forgot we had it since i've been progressively upgrading local installations. I don't think we've ever fixed this issue since the schema change to v7.1 since it was decided the installer was going to be depreciated. I believe we should resolve this since we're still planning to have the installer with v7.1.0.

I believe it was done in #3228, however after checking it turned out that while everything was configured correctly and new files were included, they weren't included. I've corrected that and now after installation the version is set correctly:

MariaDB [(none)]> select * from tigaseinst.tig_pairs;
+------+-----+----------------+------+
| nid  | uid | pkey           | pval |
+------+-----+----------------+------+
| NULL |   1 | schema-version | 5.1  |
+------+-----+----------------+------+
1 row in set (0.00 sec)

MariaDB [(none)]> drop database tigaseinst;
Query OK, 13 rows affected, 13 warnings (0.07 sec)

MariaDB [(none)]> select * from tigaseinst.tig_pairs;
+------+-----+----------------+------+-----+
| nid  | uid | pkey           | pval | pid |
+------+-----+----------------+------+-----+
|    1 |   1 | schema-version | 7.1  |   1 |
+------+-----+----------------+------+-----+
1 row in set (0.00 sec)

As for the web-based installer, it works OK until b4277 so it's a recent one, I tested versions back to b4225 in June of this year, they all are OK. Oddly, b4279 works OK and does not present this issue. Perhaps an error in building b4277.

This is a bit weird. Build process should not affect the binaries. Can you verify it's reproducible with b4277?

Additionally I've changed detection of JDK path under OSX as it was throwing exceptions and make testing a bit more difficult.

Daniel Wisnewski commented 8 years ago

I can't reproduce the web-installer issue, this may have been a local DB issue or something incorrect with settings.

As for the exe install, I get this for current message b4282:

| 2016/08/17 18:02:56 |   ---------------------------------------------
| 2016/08/17 18:02:56 |   ERROR! Terminating the server process.
| 2016/08/17 18:02:56 |   PubSub Component is not compatible with
| 2016/08/17 18:02:56 |   database schema which exists in
| 2016/08/17 18:02:56 |   jdbc:derby:c:\Tigase\tigasedb
| 2016/08/17 18:02:56 |   This component uses newer schema. To continue
| 2016/08/17 18:02:56 |   use of currently deployed schema, please use
| 2016/08/17 18:02:56 |   older version of PubSub Component.
| 2016/08/17 18:02:56 |   To convert database to new schema please see:
| 2016/08/17 18:02:56 |   https://projects.tigase.org/projects/tigase-pubsub/wiki/PubSub_database_schema_conversion
| 2016/08/17 18:02:56 | ShutdownThread started...
| 2016/08/17 18:02:57 | == Removing cluster_nodes item: testserv
| 2016/08/17 18:02:57 | 
| 2016/08/17 18:02:57 | Total number of threads: 381
| 2016/08/17 18:02:57 | No locked threads.
| 2016/08/17 18:02:57 | 
| 2016/08/17 18:02:57 | ShutdownThread finished...

It looks like the overarching schema file works OK (v7.1), we just need the correct pubsub schema fixed as well(v3.2.0).

wojciech.kapcia@tigase.net commented 8 years ago

I've updated the installer to use 3.2.0 PubSub schema and verified locally that changes from this file are in the DB:

MariaDB [tigaseinstpubsub]> show procedure status where name='TigPubSubGetNodeMeta' and db='tigaseinstpubsub';
+------------------+----------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db               | Name                 | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------------------+----------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| tigaseinstpubsub | TigPubSubGetNodeMeta | PROCEDURE | root@localhost | 2016-08-22 18:55:31 | 2016-08-22 18:55:31 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------------------+----------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

I've also made a small change so now only single connection to the db will be created when adding XMPP admin account.

Daniel Wisnewski commented 8 years ago

Confirmed fixed in b4284

Installer loads correct schema file for Derby, MySQL, PostgreSQL, and SQL Server either web-install or exe/jar installer.

Nice work %wojtek !

Closing issue.

issue 1 of 1
Type
Bug
Priority
Major
Assignee
RedmineID
4462
Version
tigase-server-7.1.0
Spent time
29h
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#703
Please wait...
Page is in error, reload to recover