mysql: With universal_newlines, python3 subprocess assumes that communicate()...
mysql: With universal_newlines, python3 subprocess assumes that communicate() parameter is str() (not bytes()).
But mysql_script_file was opened as a binary files and thus a bytes() was returned:
File "etc/run/mariadb_update", line 51, in <module>
sys.exit(slapos.recipe.generic_mysql.mysql.updateMysql(mysql_upgrade_binary='/srv/slapgrid/slappart3/bin/mysql_upgrade', mysql_binary='/srv/slapgrid/slappart3/bin/mysql', mysql_script_file='/srv/slapgrid/slappart3/etc/mariadb_initial_setup.sql'))
File "parts/slapos.cookbook-repository/slapos/recipe/generic_mysql/mysql.py", line 31, in updateMysql
result = mysql.communicate(mysql_script)[0]
File "parts/python3/lib/python3.7/subprocess.py", line 964, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "parts/python3/lib/python3.7/subprocess.py", line 1692, in _communicate
self._save_input(input)
File "parts/python3/lib/python3.7/subprocess.py", line 1774, in _save_input
self._input = self._input.encode(self.stdin.encoding,
AttributeError: 'bytes' object has no attribute 'encode'