Hi Georg, I read through your notes below and followed your advice.
If we update the readme to reflect the following: ====================================================== Running test-profile for mysql in your local time zone ====================================================== First, the JDBC connection is stored in two places which should be updated to match your local timezone. 1. torque-test/pom.xml 2. torque-test/src/test/profile/mysql/Torque.properties After changing the timezone settings in both of the jdbc connection URLs, I ran: $ mvn clean test -Pmysql,manager,beans [INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.374 s - in org.apache.torque.map.DatabaseMapTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 287, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:27 min [INFO] Finished at: 2020-08-28T10:52:44-04:00 [INFO] ------------------------------------------------------------------------ I see no reason to stop the release and change my vote to +1 Glad you figured it out! :-) - Jeffery > Hi Jeffery, > > I rechecked this and I think, this is a test configuration issue and > resolvable. > > The point is we have at least two configurations for the connection url. > 1) pom.xml: in profile <database> property torque.database.url is set, > which is used in sql-maven and antrun plugins. This is, where you made the > changes.. > 2) pom.xml: surefire plugin sets property torque.configuration.file to > src/test/profile/${torque.test.profileDirectory}/Torque.properties. > In mysql/Torque.properties the jdbc url is set for the JUnit tests with: > torque.dsfactory.bookstore.connection.url = > jdbc:mysql://localhost:3306/bookstore?serverTimezone=Europe/Berlin&useSSL=false&allowPublicKeyRetrieval=true > Exact Details: This is used in the host based (non docker) test > environment here: > org.apache.torque.junit5.extension.HostCallbackExtension.setUp(ExtensionContext). > There this configuration is checked before evaluating the default (which > is the same by the way: "src/test/profile/%s/Torque.properties"). > If you change this and set the serverTimezone appropriately, e.g. to > serverTimezone=America/New_York the test is passing (your failing test) ! > > Your first test fails, as the JUnit test sets the time field (using > HostCallbackExtensions jdbc connection with serverTimezone=Europe/Berlin) > and retrieves it from the database, which has timezone default to system, > which is America/New_York. Actually setting the serverTimezone in the > mysql pom profile does not affect anything, as all the initialization SQL > is hard coded, and the serverTimezone is set there only to avoid a warning > from the mysql jdbc driver (I think the warning is "The server timezone > value XXX is unrecognized or represents more than one timezone). Voila! > > Testing a different timezone than Europe/Berlin requires to set first of > all setting the jdbc url in src/test/profile/%s/Torque.properties (or any > other configured file). We should point out this somewhere in the > developer's readme and explain this behaviour! > > As a result, this is a test configuration issue. > > What do you think? Is this stopping the release? > > Of course, we should update the README.md in torque-test, as the test > expects, that the timezone in mysql is set implicitely (if it is system) > or explicitely to Europe/Berlin, and this might be of course not the case > ... This is a IMO a non-functional requirement for running the tests, and > we could only explain or declare it as such. > > Best regards, Georg > > > > > Von: "Georg Kallidis" <georg.kalli...@cedis.fu-berlin.de> > An: "Apache Torque Developers List" <torque-dev@db.apache.org> > Datum: 24.08.2020 12:42 > Betreff: Re: Re: [VOTE] RC Torque 5.0 based on staged repository > > > > Hi Jeffery, > > thanks for testing this! > > The use case we want to test is IMO just the system time zone, i.e. mysql > uses the local system settings. > > 1) I would expect, if system timezone is America/NY, then, if using this > same timezone in the application jdbc driver, setting or getting the time > (date) should work and retrieve the same time. As it fails the question is > > why.. If I have to explain the result (of the failure), I would say, the > time was set in another time zone, e.g UTC and we retrieve the time > converting it to America/US timezone, that is a different time zone, but > how could that happen, if the system timezone is the same? As the second > test setting with Europe/Berlin does not fail, it may be, that some hard > coded time zone setting is somewhere in the code (?). We have to check ... > > could you check in mysql, if this results in "system": SELECT > @@global.time_zone, @@session.time_zone; > > 2) The same tests (DefaultValuesFromDatabaseContainerTest)pass here, if I > > use the docker test environment, having changed the system time zone or > setting e.g. ENV TZ America/New_York in DockerFile. If you have a running > docker environment , you may want to check this with > > mvn clean test -Pdocker-testcontainer,mysql,managers,beans > > (You may have to stop mysql server, as the docker mysql by default does > use the same port 3306 As in DockerCallbackMySQLExtension in the jdbc call > > the serverTimezone is set to ZoneId.systemDefault()) > > This might by the last resort, and probably is not the reason: Mysql > driver version has in an upcoming release some bug fixes regarding date > time conversions: > https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-20.html (we > > use 8.0.18). What happens, if you you update the driver to the newest > version - 8.0.22 in torque-test/pom.xml, > <torque.test.mysql.version>8.0.21</torque.test.mysql.version> ? > > I'll keep you updated, when more reliable results appear ;-) > > Best regards, Georg > > P.S: By default named time zones are not settable on mysql server (at > least in windows, in unix you have to trigger the setting), see > https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html. > > > > Von: Jeffery Painter <j...@jivecast.com> > An: torque-dev@db.apache.org > Datum: 23.08.2020 23:17 > Betreff: Re: [VOTE] RC Torque 5.0 based on staged repository > > > > Hi Georg, > > I checked out the source from tag and was able to build and compile with > no issues on my Linux machine (Ubuntu 20.04 fresh install): > > Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) > Maven home: /usr/java/maven > Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: > /usr/java/jdk1.8.0_261/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux", version: "5.4.0-42-generic", arch: "amd64", family: > "unix" > > I then went to torque-test/ > > I was able to run: > > mvn clean test -Phsqldb,managers,beans > > This completed with all tests passing. > > > MySQL Issues: > > First test updating my pom.xml to use my local timezone: > > ------------------------------------------------------------- > > I updated the torque-test/pom.xml to use my timezone "America/New_York" > > painter@merlin:~/apache/torque-5.0/torque-test$ grep New_York pom.xml > <torque.database.url>jdbc:mysql://localhost:3306/bookstore?serverTimezone=America/New_York&useSSL=false&allowPublicKeyRetrieval=true</torque.database.url> > > root@merlin:~# timedatectl > Local time: Sun 2020-08-23 17:11:19 EDT > Universal time: Sun 2020-08-23 21:11:19 UTC > RTC time: Sun 2020-08-23 21:11:19 > Time zone: America/New_York (EDT, -0400) > System clock synchronized: yes > NTP service: active > RTC in local TZ: no > > > MySQL Server version: 8.0.21-0ubuntu0.20.04.4 (Ubuntu) > mvn clean test -Pmysql,managers,beans > > [INFO] Results: > [INFO] > [ERROR] Failures: > [ERROR] DefaultValuesFromDatabaseTest.testNewObjectChangedValue:214 > expected: <1970-01-01 11:21:31> but was: <1970-01-01 05:21:31> > [INFO] > [ERROR] Tests run: 287, Failures: 1, Errors: 0, Skipped: 0 > [INFO] > > ------------------------------------------------------------- > > Second, I try to reset my local timezone to Europe/Berlin > > painter@merlin:~/apache/torque-5.0/torque-test$ grep Berlin pom.xml > <torque.database.url>jdbc:mysql://localhost:3306/bookstore?serverTimezone=Europe/Berlin&useSSL=false&allowPublicKeyRetrieval=true</torque.database.url> > > > painter@merlin:~/apache/torque-5.0/torque-test$ timedatectl > Local time: Sun 2020-08-23 23:15:06 CEST > Universal time: Sun 2020-08-23 21:15:06 UTC > RTC time: Sun 2020-08-23 21:15:07 > Time zone: Europe/Berlin (CEST, +0200) > System clock synchronized: yes > NTP service: active > RTC in local TZ: no > > > mvn clean test -Pmysql,managers,beans > > [INFO] Results: > [INFO] > [INFO] Tests run: 287, Failures: 0, Errors: 0, Skipped: 0 > [INFO] > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 02:27 min > [INFO] Finished at: 2020-08-23T23:15:33+02:00 > [INFO] > ------------------------------------------------------------------------ > > > So unfortunately, I would still say there is a bug in this test case, > but it is very close! I do not know how to resolve this or I would :-) > > [ ] +1 release it > [ ] +0 go ahead I don't care > [x] -1 no, do not release it because > > > -- > > Jeffery Painter > > > > > > > > > > > On 8/14/20 8:17 AM, Georg Kallidis wrote: >> Hi Torque community, >> >> >> another release candidate for Torque version 5.0 has been prepared and > is >> again open for voting! >> >> >> Artifacts: >> >> > https://repository.apache.org/content/repositories/orgapachetorque-1002/org/apache/torque/ > > >> >> >> Tag: >> >> https://svn.apache.org/repos/asf/db/torque/torque4/tags/torque-5.0 >> >> >> This release contains the following updates: >> >> - fixes from last vote relplies, updated resources, improved build >> workflow. >> >> - 81 resolved JIRA issues: >> > https://issues.apache.org/jira/browse/TORQUE-359?jql=project%20%3D%20TORQUE%20AND%20status%20%3D%20Resolved%20AND%20fixVersion%20%3D%204.1 > > >> >> >> (note, this is still "fix version 4.1", but should be updated to 5.0) >> - a lot of bugfixes, cleanup and refactoring, e.g. >> time/date/timestamp-string formatting, deprecated DBCP1 adapters, DBCP2 > is >> >> the default now... >> - Java 8, tested and build in Java 8 and 14 with JUnit 5 and Log4j2 >> - updated almost all plugin, build and database dependencies, major >> updates: velocity 2.0, groovy 3.0.4 >> - added Docker testcontainer profiles for mysql and postgresql >> - new refactored ant task Torque4JDBCTransformTask >> >> Keys: >> https://svn.apache.org/repos/asf/db/torque/torque4/trunk/KEYS >> https://dist.apache.org/repos/dist/release/db/torque/KEYS (after release >> to be updated) >> >> >> Please verify this release candidate carefully, give feedback or/and > vote >> >> >> [ ] +1 release it >> [ ] +0 go ahead I don't care >> [ ] -1 no, do not release it because >> >> >> Have fun! >> >> >> Best regards, Georg >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org > For additional commands, e-mail: torque-dev-h...@db.apache.org > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org