Skip to content

Uninitialized EventTarget vtable causes alignment panic #1250

@axlEscalada

Description

@axlEscalada

Browser crashes with alignment panic when js creates EventTarget instances:

thread 2227839 panic: incorrect alignment
/home/axl/projects/browser/src/browser/netsurf.zig:623:93: 0x358c8f0 in eventTargetVtable (lightpanda)
    const vtable_aligned: *align(@alignOf([*c]c.dom_event_target_vtable)) const anyopaque = @alignCast(vtable);
                                                                                            ^
/home/axl/projects/browser/src/browser/netsurf.zig:791:34: 0x358c79d in eventTargetDispatchEvent (lightpanda)
    const err = eventTargetVtable(et).dispatch_event.?(et, event, &res);
                                 ^
/home/axl/projects/browser/src/browser/dom/event_target.zig:160:56: 0x38d608d in _dispatchEvent (lightpanda)
        const res = try parser.eventTargetDispatchEvent(self, event);
                                                       ^
/home/axl/projects/browser/src/browser/js/Caller.zig:100:5: 0x38d66de in method__anon_306243 (lightpanda)
    const res = @call(.auto, func, args);
    ^
/home/axl/projects/browser/src/browser/js/Env.zig:339:26: 0x3711a82 in callback (lightpanda)
            caller.method(Struct, named_function, info) catch |err| {
                         ^
???:?:?: 0x707c0c6 in ??? (???)

Steps to reproduce:

./lightpanda serve --host 127.0.0.1 --port 9222

Then run:

import { chromium } from 'playwright';
 
const browser = await chromium.connectOverCDP('ws://127.0.0.1:9222');
 
const context = await browser.newContext({});
const page = await context.newPage();
 
await page.goto('https://github.com/');
 
const title = await page.locator('h1').textContent();
console.log(title);
 
await page.close();
await context.close();
await browser.close();

Environment:

  • OS: Linux (tested on NixOS)
  • Zig version: 0.15.2
  • Architecture: x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions