Re: Is chromium-149.0.7827.196 crashing for you guys?

Fabien Romano <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>

On 7/10/26 13:25, Kirill A. Korinsky wrote:
> On Fri, 10 Jul 2026 10:37:45 +0200,
> Fabien Romano <[email protected]> wrote:
>>
>>
>> An AI found the crash is related to a web serial.
>>
>> I have no idea why it randomly fails on my side.
>> But yes, after trying a few times, I also get the crash.
>>
>> Crash:
>> rm -rf /tmp/chrome-vinted-serial && \
>> /usr/local/bin/chrome \
>>     --user-data-dir=/tmp/chrome-vinted-serial \
>>     --no-first-run \
>>     https://www.vinted.com/
>>
>> No crash:
>> rm -rf /tmp/chrome-vinted-noserial && \
>> /usr/local/bin/chrome \
>>     --user-data-dir=/tmp/chrome-vinted-noserial \
>>     --no-first-run \
>>     --disable-blink-features=Serial \
>>     --disable-features=WebSerialAPI \
>>     https://www.vinted.com/
>>
>> From my first test, --disable-blink-features=Serial is enough.
>>
>> Please test those flags and confirm it fixes your issue.
>>
>> I also get this crash while looking for WASM stuff online.
>> https://patrickelectric.work/mavlink2rest-wasm/
>>
>> This one crashes all the time as it explicitly tests the serial.
>>
>> rm -rf /tmp/chrome-serial && \
>> /usr/local/bin/chrome \
>>     --user-data-dir=/tmp/chrome-serial \
>>     --no-first-run \
>>     https://patrickelectric.work/mavlink2rest-wasm/
>>
>> Also, I do not understand why, but --js-flags=--jitless prevents the crash.
>> I guess this is specific to this test.
>>
>> The below diff isn't enough, but it show where to look.
>> Next we have to handle the failure and return / close properly.
>> Otherwise tests fail on a timeout, which sounds not correct.
>>
>> Except if someone wants to implement serial ...
>>
>> -- 
>> Fabien Romano
>>
>> QOL. Do not crash, fail silently.
>> XXX notyet
>>
>> Index: services/device/device_service.cc
>> --- services/device/device_service.cc.orig
>> +++ services/device/device_service.cc
>> @@ -310,7 +310,8 @@ void DeviceService::BindSerialPortManager(
>>    serial_port_manager_.AsyncCall(&SerialPortManagerImpl::Bind, FROM_HERE)
>>        .WithArgs(std::move(receiver));
>>  #else   // defined(IS_SERIAL_ENABLED_PLATFORM)
>> -  NOTREACHED() << "Serial devices not supported on this platform.";
>> +  // Serial is unsupported on this platform. Let the receiver close so the
>> +  // renderer observes a disconnect and requestPort() fails gracefully.
>>  #endif  // defined(IS_SERIAL_ENABLED_PLATFORM)
>>  }
>>  
>>
> 
> Am I reading it right: a some random website tries to use Web Serial API and
> because it is not implemented, it literally crashed the web browser?

Yes, exactly.

https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/checks.md

CHECK(), DCHECK() and NOTREACHED() are all used to ensure that invariants hold.
They document (and verify) programmer expectations that either some statement
always holds true at the point of (D)CHECKing or that a piece of code is
unreachable (for NOTREACHED). CHECK failures and reachable NOTREACHEDs result in
an application crash (generating a crash report).

I don't remember when they switched NOTREACHED() to be fatal (recently, I think).
If you try to use BindSerialPortManager on OpenBSD, you crash.

> 
> Anyway, I had added robert@ in case if he missed it.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.