January to April 2022
Adjusted three QA tests.
Non-ascii characters in message "INET/inet_error ... user = ñèñòåìà" (last word is in Russian, encoded in cp1251) when Windows is localized. At the same time, messages with names of metadata objects (say, trigger for disconnect) are encoded in utf-8. As result, firebird.log contains messages in different encodings.
New QA is affected: lot of UnicodeDecode errors when reading firebird.log. Created ticket #7102.
FB service can not be stopped in correct way (e.g. via NET STOP) if first attachment waits for record updating and second tries to delete first attachment via 'DELETE FROM MON$STATEMENTS'. Created ticket #7103.
Discussed with pcisar.
OLTP-EMUL, LI-V4.0.1.2721, SS: crash after ~20 minutes since test start (100 attachments).
New QA: discussed current state of terminal output ( "opt-out" feature ) and "--skip-deselected" command switch.
Implemented first draft for parsing XML results of firebird-qa run and compare with fbtest outcome (using xmltodict package).
New QA: discussed list of attributes which can be added beyond currently avaliable set to XML output.
OLTP-EMUL, LI-V3.0.9.33557, SS: crash after ~15 minutes since test start (100 attachments). Broken MemBlock pool.
New QA: re-implemented auxiliary script for parsing XML files with results of firebird-qa run (made this script independent on appearance of new nested levels and attributes; use recursive calls).
New QA: completed firebird-qa runs on Windows-10 (both FB 3.0.8 and 4.0.1) and CentOS-7. Have still ~15 tests with [X]Failed state on Windows (and ~6 Failed on CentOS).
New QA. Finally completed comparison of outcomes firebird-qa and fbt_run, got 'baseline' for 3.0.8 Release and 4.0.1 Release.
A fbtest, $(DATABASE_LOCATION) macros: trailing slash missed on CentOS-7 (but present on Debian and Windows).
Fixed after Pavel's suggestion to correct fbtest.py, function Runner._set_tempdir().
QA fbtest, Windows only: problem since 5.0.0.402 with loading encryption plugin provided by IBSurgeon (got gdscode = 335545004), appears on initial phase when trying to connect to Services API.
QA fbtest runs, Linux only: could not make any test, got "No entry for terminal type "xterm"; using dumb terminal settings" on attempt to run SQL statements using PIPE mechanism (no problem when doing that via "IN
Updated auxiliary script "QA-get-missed-runs.sh": added check for difference between Linux and Windows snapshots that are published on official FB site.
QA fbtest, LI-V4.0.1.2726, SS: fbt_run hanged on core-6316 and core-5431. Gathered dump and stack trace, sent reports to FB team.
QA fbtest, Linux, 5.0.0.404: several tests failed on Windows with unexpected execution plan (but remained OK on Linux). Sent list to FB team.
New QA. Dealing with tests having "FIXME: see notes" mark. Searched for reason of fail for test for core-2940, FB 3.0.8, Windows only
(additional query in the trace was found, exists only in FB 3.0.8; leads to excessive "+ 1 records fetched" in the trace log).
Re-implemented tests for core-3598, core-4172. Discussed with pcisar (letters since 18.2.2022) Changed code in order to avoid fail on Windows.
OLTP-EMUL: checked non-standard build FB 5.x, use new parameter in config: PrefetchFlags, got results for UseFileSystemCache = true / false (Vlad's request).
QA fbtest, Windows, 4.0.1.2729, Classic: hanged test CORE-6324; gathered dump and stack trace, sent report to FB team.
OLTP-EMUL, 4.0.1.2728, experimental build (with prefetch features): crash just after test start, reproducible; hanged last attachmend on test finish.
New QA: problem with pytest when ran FB 4.0.1 Classic on Linux (CentOS-7): it hanged on final stage.
ISQL considers passing command via PIPE mechanism as interactive way, but only on Windows. This was changed in FB 4.x but remains on FB 3.x. This explains why several new tests (from firebird-qa suite) fails only on FB 3.0.8 when running on Windows.
Resumed search of reason why dumps can be truncated (while having lot of disk space; CentOS-7, FB 3.x, experimental build; discussed with alex et al) Several tests need to be changed because of different way of launching child FB process (example: "functional.session.ext-conn-pool-01").
Resumed investigation of problem with missed forward slach in some cases of $(DATABASE_LOCATION) usage.
Implemented / refactored /adjusted .fbt for GH-issues: 4498 0733 4928; functional/basic/db_* (6 tests)
March 2022
New QA: outcome of test can depend on presense of running trace session (additional query to RDB$USER_PRIVILEGES is done by act.isql()).
Fixed in #7139 ("With multiple trace sessions user may receive trace events related to engine's requests").
Excessive query "SELECT CURRENT_USER, CURRENT_ROLE FROM RDB$DATABASE" is performed if commands pass to ISQL using PIPE mechanism, only on Windows.
New QA: resumed investigation of hanging FB 4.0.1.2692, Classic when test session is about to finish (pytest + firebird-qa plugin, using firebird-driver).
New QA: baseline for 4.x must be shifted to recently released 4.0.1.
Created aux script for quick (and rough) estimation of total number of data pages that were allocated for tables (through number of pointer pages divided by 4.5; blobs can not be taken in account by this way). This can be useful when DB size is extremely high. Discussed with dimitr. New QA: trace option 'LOG_INIT_FINI' can be assumed as FALSE in all practical cases (both for DB and Services section).
New QA: info about ServerMode, protocol and whether we are in embedded mode or no - all these can be obtain from rdb$config in FB 4.x, no need to create attachment to employee. In FB 3.x may be query to security.db is better because it always avaliable and we always can change RemoteAccess to 'true' (in databases.conf) before tests session start.
New QA, adjusting 'FIXME' tests. Worked with test for core-4743: connect to DB using non-ascii user name. Problem relates to FB client on Windows when it works ni 'pseudo-unicode' code page (65001) and needs to pass non-ascii strings to server. Need to use somewhat like 'utf8params' that was in FBT suite (but missed in pytest firebird-qa plugin).
Snapshot 3.0.10.33570 was created only on Linux, failed on Windows.
New QA, adjusting 'FIXME' tests. Worked with test for core-5972: could not reproduce problem described in the NOTES sesion
("Fails on Windows 3.0.8 due to malformed error message"), test passed on Windows-10.
New QA, adjusting 'FIXME' tests. Worked with test for core-6237 ("Performance problem when using SRP plugin", gh-6481).
Charts based on MEDIAN values looks very strange on Windows (no entropy, no randomness; very strong magnutides of peak values comparing to average, etc.
Wirecrypt must be set to 'disabled'. Discussed with FB team.
New QA, adjusting 'FIXME' tests. Worked with test for core-6248: can not create DB file if total length of its path is 250.
Fails with "UnicodeDecodeError ... invalid continuation byte" when length = 249. No such problem on FBT suite.
New QA, several tests suffer because of ISQL "SET BAIL ON" problem on Windows when commands come from PIPE. Ticket #7173. Implemented auxiliary script for parsing firebird.log and make different levels of aggregation of all messages (including network-related problems). QA fbtest. Test for core-2879 gets stuck on FB-5, Windows (builds 5.0.0.435 and 5.0.0.437).
Lot of runtime errors while running FBT-suite on 5.0.0.437. Sent report to FB team.
QA fbtest. Failed test "blob-not-found-in-rw-replica-if-target-row-exists" on 4.0.2.2744 SS (Windows). Sent report to dimitr.
Regression in WI-T5.0.0.435 : issuing create or alter user ... + commit leads to strange "record not found for user: ..." if AUTODDL = OFF and we create TWO users (no such problem on 4.0.0.426).
Debug messages in firebird.log ("DEBUG_LCK_LIST: irsb_nav_btr_gc_lock && !irsb_nav_page") may lead this file to grow up to dozen gigabytes.
Changes in FB 5.x 18.03.2022 leads to SQLSTATE = 42000 (-object TABLE "TEST" is in use). Detected when run test of CORE-3557 (since build 5.0.0.435).
Test for CORE-3323 (Ability to cancel waiting in lock manager) fails on ES/EDS, 5.0.0.437, Classic (Windows): "Execute statement error at attach" instead "... at isc_dsql" appeared in diff log. New QA: re-implemented test for core-6411.
New QA. Continued work with re-implementing test for CORE-6411. Creationg table with lot of columns (more than implementation limit) and attempt to commit leads such DDL to be performed too long (several seconds, while number of indexed reads is about 8000 for each of five RDB tables).
QA fbtest. Three crashes when run FBT suite on Linux, 5.0.0.439, Classic.
LINUX, 5.0.0.439, SuperServer: crash while executing test for CORE-4337, then 60+ runtime errors caused by unable DB.
Several ISQL hanged during parallel inserting data (used BULK INSERT feature; protocol = XNET).
QA fbtest. FB 5.0.0.445, Lnux & Windows: several tests failed from FBT suite, all related to OUTER JOINS.
FB 4.0.1.2733 Classic (special build): problem "MappingIpc: Cannot initialize the shared memory region" when DB state is changed from normal to "-shut single -force 0" and this command is issued in several cmd windows (after running IBEScript with performing complex sql script and using XNET protocol for connection).
FB 4.x and 5.x, Windows: trace log contains question marks instead of non-ascii user name in additional ("service") query to RDB$USER_PRIVILEGES table.
WI-V4.0.2.2737: problem with UDR libcrypto when delaring DDL of crypto_decode_base64(), relates to
CRYPTO_RSA_SIGN function: "SQLSTATE = HY000 / Error importing private RSA key: Invalid input packet".
FB 4.0.1.2736 Classic (special build): connection can be lost when use XNET protocol and infinite batch with loop for execution of complex SQL and "-shut single -force 0". Got: "Error writing data to the connection. / send_packet/send"
QA fbtest. Implemented / refactored /adjusted tests from FBT suite: functional/basic/db_* (2 tests); CORE-4928 3557 6444 3188 5075 2879
Checked / refactored /adjusted tests from NEW-QA suite: 2940 3598 4172 4928 3557 6444 6411 ; functional/basi/db/test_23, test_26
Changes in auxiliary QA-scripts (.sh, .bat)
April 2022
QA fbtest. FB 5.0.0.451: many tests failed from FBT suite, related to OUTER JOINS and join transformations.
New QA: re-implemented test for CORE-6469, found problem with mapping from Win_Sspi context variable CURRENT_USER remained SYSDBA (instead of current Windows admin) if SQL script contains CONNECT statement.
New QA. Problem with evaluation of values with extremely low magnitude, like exp(-744.0346068132731393): results in FB 4.0.1 is zero
(rather than in FB 3.0.8). Problem also can appear if CPU manufacturer is AMD. Removed test functional/datatypes/dp-single-bit-in-representation that manupulated with such values.
QA fbtest. LI-T5.0.0.455: lot of crashes while running FBT suite (both SS and CS; perhaps, related to core_4731).
New QA: verified result of functional.gtcs.test_time_zone, could not reproduce fail described in its code. Test passes OK, removed 'FIXME' mark from it.
New QA. Problem with investigating reason of some fails: trace does not show attempts to login without passing name/password pair (which leads to "missing secur context" record in firebird.log). Added ticket #7165.
QA fbtest. FB 5.0.0.457: about 10 SQL-related tests failed because of changes in their execution PLAN.
New QA and QA fbtest. Changed 10 SQL-related tests to make them pass in FB 5.x (since 5.0.0.457): tables with equal number of rows (or empty) now are specified in the HASH JOIN exactly as they are in the query text.
QA fbtest. WI-4.0.2.2750, Classic: fbt_run hanged on test for core-6412.
QA fbtest. FB 5.0.0.467: three tests failed, all relate to COMPUTED-BY indexes (core-1173, -4673, -5118).
New QA. Problem with re-implementing test for #5063: user with non-ascii name can not be specified in the CONNECT operator on Windows ("SQLSTATE = 28000 / Your user name ..."), although it for sure present in the security.db and can be specifies in the ISQL cmmand "-user ... " switch.
New QA. Completed re-implementing almost all tests marked as 'FIXME: see notes' from 'bugs/' folder. Checked all of them on Windows and Linux. Three tests remain non-changed (deferred): core-6237, -6248 and -6272.
QA fbtest. 5.0.0.471, Classic, Linux: crash probably on test for CORE-3732. No dump because client detached before his server process crashed. The same when tested 5.0.0.475, probably on test for CORE-2875. Updated QA_rundaily sripts (.sh and .bat): one need to take in account timestamp of last change in FBT_REPO on every checking of FB major (3.x, 4.x, 5.x), not at the start of this loop.
Implemented SQL queries in order to verify new features of FB 5.x optimizer (requested by dimitr).
Applying of MIN()OVER() to dataset that is issued by LATERAL sub-query unexpectedly produces NULLS.
Implemented new queries that will be used for additional optimizer testing. Applying backup/restore to database leads to changing execution plan because of changed data pages number. NOT ALL queries were affected because of b/r (though they should also be).
Re-implemented test for #897, because it behave differently on Linux vs Windows.
Old problem was (again) encountered: attempt to connect to non-existing DB can be watched in a trace log only when trace uses local protocol for connecting to Services API ( #6514; 2020 ).
New QA. Resolved problem in the test for CORE-6272 (one need to use "encoding = locale.getpreferredencoding()" when running act.trace(). New argument a'la "errors = 'ignore'" can be used to act.trace() launch.
New QA. Adapted functional\gtcs\test_dsql_domain_22.py to be able work on localized Windows box.
OLTP-EMUL: crash of LI-V3.0.10.33577, SS during test run. Related to IndexTableScan. Problems with many tests since 5.0.0.477, issuing: "COLLATION UNICODE for CHARACTER SET UTF8 is not installed" ("An ICU library with collation version 153.88 is required").
QA fbtest. Linux, 5.0.0.477 SuperServer: lot of crashes during fbt_run work.
Refactored auxiliary batch scenario that must watch for dumps: problem found when there is at least one dump with name that contain parenthesis (e.g. "firebird.exe(1).9424.dmp).
Applying of NBACKUP - L / NBACKUP -N can extremely increase attach / detach time of connection (20 ms for attach; 1 ms for detach).
Refactored watch4dumps and qa_rundaily batches: applying ROBOCOPY for remove all empty sub-directories.
OLTP-EMUL: crash of LI-V4.0.2.2761, SS during test run. Related to IndexTableScan (as it was also on 3.0.10.33577).
New QA. Name of application that makes connect to Services API may absent in the trace log.
3.0.8.33501 SS, Windows (experimental build): could not change DB state to full shutdown when running heavy DML on *another* (temporary created) database and let it work during ~10 hours. Could not stop FB service also.
New QA and QA fbtest. Implemented / refactored /adjusted tests from FBT suite:
- COREs: 3553 3834 4492 4528 4809 6444 5598 1885 6336 4452 4418 ;
- functional/arno.optimizer/opt_mixed_joins* (4 tests);
- functional/basic/isql ;
- functional/basic/db
Pavel Zotov
Moscow, Russian Federation