Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix decoding error when reading server log file #422

Merged
merged 1 commit into from Feb 13, 2024

Commits on Feb 13, 2024

  1. Fix decoding error when reading server's log file

    When a diff test starts a Tarantool server, test-run reads the server's
    log file and tries to find the message indicating the server is ready.
    Sometimes the server's log file may contain bytes that cannot be decoded
    by `utf-8` codec and test-run fails with an error like this:
    
        [044] TarantoolInpector.handle() received the following error:
        [044] Traceback (most recent call last):
        [044]   File "/tarantool/test-run/lib/inspector.py", line 98, in handle
        [044]     result = self.parser.parse_preprocessor(line)
        [044]   File "/tarantool/test-run/lib/preprocessor.py", line 123, in parse_preprocessor
        [044]     return self.server(stype, sname, options)
        [044]   File "/tarantool/test-run/lib/preprocessor.py", line 351, in server
        [044]     return getattr(self, attr)(ctype, sname, opts)
        [044]   File "/tarantool/test-run/lib/preprocessor.py", line 209, in server_start
        [044]     self.servers[sname].start(silent=True, rais=True, wait=wait,
        [044]   File "/tarantool/test-run/lib/tarantool_server.py", line 910, in start
        [044]     self.wait_until_started(wait_load, deadline)
        [044]   File "/tarantool/test-run/lib/tarantool_server.py", line 1147, in wait_until_started
        [044]     self.wait_load(deadline)
        [044]   File "/tarantool/test-run/lib/tarantool_server.py", line 1131, in wait_load
        [044]     if not self.logfile_pos.seek_wait(msg, p, self.name, deadline):
        [044]   File "/tarantool/test-run/lib/tarantool_server.py", line 485, in seek_wait
        [044]     log_str = f.readline()
        [044]   File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/codecs.py", line 322, in decode
        [044]     (result, consumed) = self._buffer_decode(data, self.errors, final)
        [044] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf0 in position 660: invalid continuation byte
    
    At least, I have seen such errors when Tarantool with JIT enabled was
    tested on macOS ARM64 machines. So this patch fixes the issue.
    ylobankov committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    92921d4 View commit details
    Browse the repository at this point in the history