[Lldb-commits] [PATCH] D106035: Remove conditional compilation for WCHAR support in libedit

Neal via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 5 03:01:54 PDT 2021


nealsid added a comment.

Yikes - issue count starting to slowly increase :) I've reverted the patch, and sorry again about that.

I have to travel for a couple days but when I get my dev machine back up later this week I will investigate these issues in detail.  I focussed my testing more on Unicode identifiers inside source files/debug information and missed the backspace problem, unfortunately.  Thanks.

In D106035#2927942 <https://reviews.llvm.org/D106035#2927942>, @teemperor wrote:

> I ran it a few times and I'm sure it's an actual '"the output didn't show up" timeout and not a random failure. I also checked and my node doesn't have an `.editrc` file or something like that on the node. It's failing on a different Arch Linux bot so I think it's not a borked machine.
>
> Arch should use just the vanilla libedit so I am not sure why it would be different from other distros. IIRC I ran all the tests when I first reviewed this, so I am also a bit confused why this is now failing. When I manually input unicode characters into the old and new prompt both seem to work, so maybe it's the pexpect test setup that is somehow dropping the input?
>
> On a side note: I think this patch actually breaks the way backspace works. With this patch applied, if I enter a command such as '∂∂∂∂∂∂∂∂∂' and then press backspace, the cursor is now moved to the right by (what I assume) is the amount of bytes that I entered. I think there is some strlen logic going on that isn't unicode aware. See below: F18365237: Screenshot 2021-08-05 at 11.51.41.png <https://reviews.llvm.org/F18365237>
>
> In D106035#2927847 <https://reviews.llvm.org/D106035#2927847>, @nealsid wrote:
>
>> :) Shoot.  I definitely want to revert ASAP rather than keep the tree in a bad state.  Just curious, since there are timeout messages in the log, would you be able to try rerunning just that one? I see this, too: 0: b"error: '\xe1\x88\xb4' is not a valid command. So I'm guessing the timeout is a red herring.
>>
>> I'll create an Arch VM to test on for future patches.  Thank you and sorry about that.
>>
>> In D106035#2927817 <https://reviews.llvm.org/D106035#2927817>, @teemperor wrote:
>>
>>> I fear I might also have to congratulate you on your first revert (sorry, couldn't resist that joke). TestUnicode is failing for me with this patch on Arch Linux:
>>>
>>>   Command Output (stdout):
>>>   --
>>>   lldb version 14.0.0 (git at github.com:Teemperor/llvm-project revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5)
>>>     clang revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5
>>>     llvm revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5
>>>   Skipping the following test categories: ['libc++', 'dsym', 'gmodules', 'debugserver', 'objc']
>>>   
>>>   --
>>>   Command Output (stderr):
>>>   --
>>>   FAIL: LLDB (/home/teemperor/work/ci/build/bin/clang-x86_64) :: test_unicode_input (TestUnicode.TestCase)
>>>   ======================================================================
>>>   ERROR: test_unicode_input (TestUnicode.TestCase)
>>>   ----------------------------------------------------------------------
>>>   Traceback (most recent call last):
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 111, in expect_loop
>>>       incoming = spawn.read_nonblocking(spawn.maxread, timeout)
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py", line 482, in read_nonblocking
>>>       raise TIMEOUT('Timeout exceeded.')
>>>   pexpect.exceptions.TIMEOUT: Timeout exceeded.
>>>   
>>>   During handling of the above exception, another exception occurred:
>>>   
>>>   Traceback (most recent call last):
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py", line 149, in wrapper
>>>       return func(*args, **kwargs)
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/test/API/iohandler/unicode/TestUnicode.py", line 25, in test_unicode_input
>>>       self.expect(u'\u1234', substrs=[u"error: '\u1234' is not a valid command.".encode('utf-8')])
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/packages/Python/lldbsuite/test/lldbpexpect.py", line 64, in expect
>>>       self.child.expect_exact(s)
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/spawnbase.py", line 418, in expect_exact
>>>       return exp.expect_loop(timeout)
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 119, in expect_loop
>>>       return self.timeout(e)
>>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 82, in timeout
>>>       raise TIMEOUT(msg)
>>>   pexpect.exceptions.TIMEOUT: Timeout exceeded.
>>>   <pexpect.pty_spawn.spawn object at 0x7f004e20a610>
>>>   command: /home/teemperor/work/ci/build/bin/lldb
>>>   args: ['/home/teemperor/work/ci/build/bin/lldb', '--no-lldbinit', '--no-use-colors', '-O', 'settings clear -all', '-O', 'settings set symbols.enable-external-lookup false', '-O', 'settings set target.inherit-tcc true', '-O', 'settings set target.detach-on-error false', '-O', 'settings set target.auto-apply-fixits false', '-O', 'settings set plugin.process.gdb-remote.packet-timeout 60', '-O', 'settings set symbols.clang-modules-cache-path "/home/teemperor/work/ci/build/lldb-test-build.noindex/module-cache-lldb/lldb-api"', '-O', 'settings set use-color false', '-O', 'setting set target.prefer-dynamic-value no-dynamic-values']
>>>   buffer (last 100 chars): b'\\U+1234\r\n(lldb) '
>>>   before (last 100 chars): b'\\U+1234\r\n(lldb) '
>>>   after: <class 'pexpect.exceptions.TIMEOUT'>
>>>   match: None
>>>   match_index: None
>>>   exitstatus: None
>>>   flag_eof: False
>>>   pid: 609226
>>>   child_fd: 6
>>>   closed: False
>>>   timeout: 60
>>>   delimiter: <class 'pexpect.exceptions.EOF'>
>>>   logfile: None
>>>   logfile_read: None
>>>   logfile_send: None
>>>   maxread: 2000
>>>   ignorecase: False
>>>   searchwindowsize: None
>>>   delaybeforesend: 0.05
>>>   delayafterclose: 0.1
>>>   delayafterterminate: 0.1
>>>   searcher: searcher_string:
>>>       0: b"error: '\xe1\x88\xb4' is not a valid command."
>>>   Config=x86_64-/home/teemperor/work/ci/build/bin/clang
>>>   ----------------------------------------------------------------------
>>>   Ran 1 test in 60.551s




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106035/new/

https://reviews.llvm.org/D106035



More information about the lldb-commits mailing list