On Thu, Nov 23, 2023 at 5:53 AM Peter Maydell <peter.mayd...@linaro.org> wrote: > > On Mon, 20 Nov 2023 at 19:19, John Snow <js...@redhat.com> wrote: > > > > On Wed, Nov 15, 2023 at 12:23 PM Daniel P. Berrangé <berra...@redhat.com> > > wrote: > > > The Python Machine() class has passed one of a pre-created socketpair > > > FDs for the serial port chardev. The guest is trying to write to this > > > and blocking. Nothing in the Machine() class is reading from the > > > other end of the serial port console. > > > > The Machine class doesn't know if anything will ever use the console, > > > so as is the change is unsafe. > > > > > > The original goal of John's change was to guarantee we capture early > > > boot messages as some test need that. > > > > > > I think we need to be able to have a flag to say whether the caller needs > > > an "early console" facility, and only use the pre-opened FD passing for > > > that case. Tests we need early console will have to ask for that guarantee > > > explicitly. > > > > Tch. I see. Thank you for diagnosing this. > > > > From the machine.py perspective, you have to *opt in* to having a > > console, so I hadn't considered that a caller would enable the console > > and then ... not read from it. Surely that's a bug in the caller? > > From an Avocado test perspective, I would expect that the test case > should have to explicitly opt *out* of "the console messages appear > in the avocado test log, even if the test case doesn't care about them > for the purposes of identifying when to end the test or whatever". > The console logs are important for after-the-fact human diagnosis > of why a test might have failed, so we should always collect them. > > thanks > -- PMM >
Understood. In that case, fixing the test would involve engaging's the avocado suite's draining utility to ensure that the log is being consumed and logged. I think there's a potential here to simplify all of the draining-and-logging code we have split across the avocado test suite, console_socket.py and machine.py, but I can't promise that the rewrite I've been working on will be ready quickly, so if this is still busted (I'm still catching back up with my mail post-holidays) then we want a quicker fix if we haven't committed one yet. --js