Skip to content

BrowserContext.NewPage may be racing with BrowserContext.Close #5328

@inancgumus

Description

@inancgumus

Brief summary

As #5322 explains, BrowserContext.NewPage may be racing with BrowserContext.Close: Close might be coming before NewPage. We don't have a way to reproduce this behavior yet, but it was observed in the test ID 5794896 with a panic:

panic: runtime error: invalid memory address or nil pointer dereference [recovered, repanicked]
[signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x12d0f11]

goroutine 1055774 [running]:
go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End.deferwrap1()
go.opentelemetry.io/otel/sdk@v1.37.0/trace/span.go:467 +0x25
go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End(0xc02cda4d20, {0x0, 0x0, 0xc00023ac40?})
go.opentelemetry.io/otel/sdk@v1.37.0/trace/span.go:506 +0xb79
panic({0x1afe4c0?, 0x319c9a0?})
runtime/panic.go:783 +0x132
go.k6.io/k6/internal/js/modules/k6/browser/common.(*Browser).newPageInContext(0xc0002a6000, {0xc00094e280, 0x20})
go.k6.io/k6/internal/js/modules/k6/browser/common/browser.go:457 +0x2f1
go.k6.io/k6/internal/js/modules/k6/browser/common.(*BrowserContext).NewPage(0xc0009bf080)
go.k6.io/k6/internal/js/modules/k6/browser/common/browser_context.go:267 +0x145
go.k6.io/k6/internal/js/modules/k6/browser/browser.mapBrowserContext.func14.1()
go.k6.io/k6/internal/js/modules/k6/browser/browser/browser_context_mapping.go:184 +0x1c
go.k6.io/k6/internal/js/modules/k6/browser/k6ext.promise.func1()
go.k6.io/k6/internal/js/modules/k6/browser/k6ext/promise.go:24 +0x2c
created by go.k6.io/k6/internal/js/modules/k6/browser/k6ext.promise in goroutine 72
go.k6.io/k6/internal/js/modules/k6/browser/k6ext/promise.go:23 +0x9a

k6 version

1.3.0

Expected behavior

Synchronize the behavior of Browser|BrowserContext.NewPage and BrowserContext.Close.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions