Known Issues¶
This page documents known issues that have come up during the development of
the wwdtm
library. Although many of the issues have been resolved or
mitigated by version 2.0.0 of the library, there are some that might pop up
in some circumstances.
MySQL Connector/Python “Out of Memory” or Host Resolution Errors¶
There is a known issue in which using the C Extension module included with
certain builds of the MySQL Connector/Python driver that can cause out of
memory
or hostname resolution errors.
While the C Extension module can help improve performance over using the pure Python implementation of the driver, the C Extension module is only available for certain combination of Python version, operating systems and versions, and system architectures.
To use the pure Python implementation instead of the C Extension module, for
installations that include and enable the C Extension module, add or set the
use_pure
configuration value in the database
section of the
config.json
file to true
.
MySQL Connection Pooling¶
As of the time of writing this documentation, the use of MySQL Connection
Pooling is not officially supported and has not been fully vetted. As such,
it is recommended to not use the following configuration keys in the
database
section of the config.json
file.
use_pool
This key may not be supported by all version of MySQL or MySQL-compatible database servers
pool_name
pool_size
MySQL sql_mode Flags¶
Earlier pre-release versions of wwdtm 2.0 had some incompatibilities if the
database it is pulling from runs on a MySQL Server 5.7 or newer due to a
violation of sql_mode
flag ONLY_FULL_GROUP_BY
. The scripts have caused
the violations have been updated and the issue should be resolved starting
with the pre-release version 2.0.0-rc.3.
To remove the ONLY_FULL_GROUP_BY
flag from the global sql_mode
variable, you will first need to query the current value of sql_mode
by
running:
select @@sql_mode;
Copy the result and remove the ONLY_FULL_GROUP_BY
flag from the list and
run the following command to unset the flag globally:
set global sql_mode='<flags>';
That will set the sql_mode
to the correct value until the service is
restarted. To make it persist, you will need to update the mysqld.cnf
file on the server with the following configuration line:
sql-mode = <flags>
This will set the sql_mode
variable to the list of flags each time the
service starts.
A way to validate that the variable change is working as expected, if you
have a working copy of the Git repository, is to run pytest
to check for
errors and messages pertaining to the ONLY_FULL_GROUP_BY
flag.