Skip to content

Frequent crashes on macOS 15 while editing Java files in WebCore::BackForwardCache::markPagesForContentsSizeChanged #3140

@msqr

Description

@msqr

Since updating to Eclipse IDE 2026-03 I am experiencing crashes frequently, but somewhat randomly, while editing Java files. The crash reporter shows this stack trace:

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x1908d6388 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x19090f848 pthread_kill + 296
2   libsystem_c.dylib             	       0x1908189e4 abort + 124
3   libjvm.dylib                  	       0x10c8d3d10 os::abort(bool, void*, void const*) + 28
4   libjvm.dylib                  	       0x10ca89be8 VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 2904
5   libjvm.dylib                  	       0x10ca89090 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 72
6   libjvm.dylib                  	       0x10ca89cf8 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 36
7   libjvm.dylib                  	       0x10c99b880 JVM_handle_bsd_signal + 428
8   libsystem_platform.dylib      	       0x1909496a4 _sigtramp + 56
9   WebCore                       	       0x1b4ff6240 WebCore::BackForwardCache::markPagesForContentsSizeChanged(WebCore::Page&) + 36
10  WebCore                       	       0x1b55a61a0 WebCore::LocalFrameView::setContentsSize(WebCore::IntSize const&) + 440
11  WebCore                       	       0x1b55a6c54 WebCore::LocalFrameView::adjustViewSize() + 96
12  WebCore                       	       0x1b55c4d4c WebCore::LocalFrameViewLayoutContext::performLayout(bool) + 3632
13  WebCore                       	       0x1b55a9c38 WebCore::LocalFrameViewLayoutContext::layout(bool) + 60
14  WebKitLegacy                  	       0x1acb7d6c0 -[WebHTMLView layoutToMinimumPageWidth:height:originalPageWidth:originalPageHeight:maximumShrinkRatio:adjustingViewSize:] + 240
15  WebKitLegacy                  	       0x1acb79efc -[WebDynamicScrollBarsView(WebInternal) updateScrollers] + 136
16  WebCore                       	       0x1b44818f4 WebCore::ScrollView::platformSetScrollbarModes() + 40
17  WebCore                       	       0x1b324c2fc WebCore::ScrollView::setScrollbarModes(WebCore::ScrollbarMode, WebCore::ScrollbarMode, bool, bool) + 252
18  WebCore                       	       0x1b55c518c WebCore::LocalFrameViewLayoutContext::performLayout(bool) + 4720
19  WebCore                       	       0x1b55a9c38 WebCore::LocalFrameViewLayoutContext::layout(bool) + 60
20  WebKitLegacy                  	       0x1acb7d6c0 -[WebHTMLView layoutToMinimumPageWidth:height:originalPageWidth:originalPageHeight:maximumShrinkRatio:adjustingViewSize:] + 240
21  WebKitLegacy                  	       0x1acb7a31c -[WebDynamicScrollBarsView(WebInternal) updateScrollers] + 1192
22  WebCore                       	       0x1b44818f4 WebCore::ScrollView::platformSetScrollbarModes() + 40
23  WebCore                       	       0x1b324c2fc WebCore::ScrollView::setScrollbarModes(WebCore::ScrollbarMode, WebCore::ScrollbarMode, bool, bool) + 252
24  WebCore                       	       0x1b55a4f14 WebCore::LocalFrameView::~LocalFrameView() + 100
25  WebCore                       	       0x1b55a5cec WebCore::LocalFrameView::~LocalFrameView() + 16
26  WebCore                       	       0x1b336ddcc WebCore::CachedFrame::clear() + 404
27  WebCore                       	       0x1b336d98c WebCore::CachedFrame::destroy() + 764
28  WebCore                       	       0x1b336d5e4 WebCore::CachedPage::~CachedPage() + 36
29  WebCore                       	       0x1b4ffd6e8 decltype(auto) std::__1::__variant_detail::__visitation::__base::__dispatcher<1ul>::__dispatch[abi:sn190102]<std::__1::__variant_detail::__dtor<std::__1::__variant_detail::__traits<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>, (std::__1::__variant_detail::_Trait)1>::__destroy[abi:sn190102]()::'lambda'(auto&)&&, std::__1::__variant_detail::__base<(std::__1::__variant_detail::_Trait)1, WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>&>(auto, std::__1::__variant_detail::__base<(std::__1::__variant_detail::_Trait)1, WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>&) + 32
30  WebCore                       	       0x1b4ffea00 WTF::HashTableAddResult<WTF::HashTableIterator<WTF::HashTable<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>>, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashMap<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>, WTF::HashTableTraits, (WTF::ShouldValidateKey)1>::KeyValuePairTraits, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, (WTF::ShouldValidateKey)1>, WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>>, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashMap<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>, WTF::HashTableTraits, (WTF::ShouldValidateKey)1>::KeyValuePairTraits, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>>> WTF::HashMap<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>, std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>, WTF::DefaultHash<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>>>, WTF::HashTraits<std::__1::variant<WebCore::PruningReason, WTF::UniqueRef<WebCore::CachedPage>>>, WTF::HashTableTraits, (WTF::ShouldValidateKey)1>::inlineSet<WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>> const&, WebCore::PruningReason&>(WebCore::ProcessQualified<WTF::ObjectIdentifierGeneric<WebCore::BackForwardItemIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits<unsigned long long>, unsigned long long>> const&, WebCore::PruningReason&) + 664
31  WebCore                       	       0x1b4ff5ed4 WebCore::BackForwardCache::prune(WebCore::PruningReason) + 228
32  WebCore                       	       0x1b4ff7164 WebCore::BackForwardCache::addIfCacheable(WebCore::HistoryItem&, WebCore::Page*) + 1284
33  WebCore                       	       0x1b32497bc WebCore::FrameLoader::commitProvisionalLoad() + 3064
34  WebCore                       	       0x1b53f5fc8 WebCore::DocumentLoader::commitIfReady() + 120
35  WebCore                       	       0x1b53fd888 WebCore::DocumentLoader::commitLoad(WebCore::SharedBuffer const&) + 88
36  WebCore                       	       0x1b570bcdc WebCore::FragmentedSharedBuffer::forEachSegmentAsSharedBuffer(WTF::Function<void (WTF::Ref<WebCore::SharedBuffer, WTF::RawPtrTraits<WebCore::SharedBuffer>, WTF::DefaultRefDerefTraits<WebCore::SharedBuffer>>&&)> const&) const + 152
37  WebCore                       	       0x1b32a454c WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) + 1932
38  WebCore                       	       0x1b53f8f98 WebCore::DocumentLoader::responseReceived(WebCore::ResourceResponse const&, WTF::CompletionHandler<void ()>&&) + 1488
39  WebCore                       	       0x1b53f84a8 WebCore::DocumentLoader::handleSubstituteDataLoadNow() + 1936
40  JavaScriptCore                	       0x1af621e24 WTF::RunLoop::dispatch(WTF::HashSet<WTF::RefPtr<WTF::SchedulePair, WTF::RawPtrTraits<WTF::SchedulePair>, WTF::DefaultRefDerefTraits<WTF::SchedulePair>>, WTF::SchedulePairHash, WTF::HashTraits<WTF::RefPtr<WTF::SchedulePair, WTF::RawPtrTraits<WTF::SchedulePair>, WTF::DefaultRefDerefTraits<WTF::SchedulePair>>>, WTF::HashTableTraits, (WTF::ShouldValidateKey)0> const&, WTF::Function<void ()>&&)::$_0::__invoke(__CFRunLoopTimer*, void*) + 84
41  CoreFoundation                	       0x190a13ba0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
42  CoreFoundation                	       0x190a13860 __CFRunLoopDoTimer + 980
43  CoreFoundation                	       0x190a1339c __CFRunLoopDoTimers + 332
44  CoreFoundation                	       0x1909f97a8 __CFRunLoopRun + 1848
45  CoreFoundation                	       0x1909f89e8 CFRunLoopRunSpecific + 572
46  HIToolbox                     	       0x19c49a27c RunCurrentEventLoopInMode + 324
47  HIToolbox                     	       0x19c49d4e8 ReceiveNextEventCommon + 676
48  HIToolbox                     	       0x19c628484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
49  AppKit                        	       0x194919a34 _DPSNextEvent + 684
50  AppKit                        	       0x1952b85cc -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
51  libswt-pi-cocoa-4972r7.jnilib 	       0x12a8135e4 Java_org_eclipse_swt_internal_cocoa_OS_objc_1msgSendSuper__Lorg_eclipse_swt_internal_cocoa_objc_1super_2JJJJZ + 172
52  ???                           	       0x1730b5a04 ???
53  ???                           	       0x172f6ac4c ???

eclipse-2026-03-macOS-crash-report.txt

To Reproduce
The crashes are somewhat random, but seem to be related to content completion suggestions, when Eclipse wants to present a suggestion.

Expected behavior
Should not crash.

Environment:

  1. Select the platform(s) on which the behavior is seen:
    • All OS
    • Windows
    • Linux
    • macOS
  1. Additional OS info (e.g. OS version, Linux Desktop, etc)

macOS 15

  1. JRE/JDK version
java.runtime.name=OpenJDK Runtime Environment
java.runtime.version=21.0.10
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=21
java.vendor=Homebrew
java.vendor.url=https://github.com/Homebrew/homebrew-core/issues
java.vendor.url.bug=https://github.com/Homebrew/homebrew-core/issues
java.vendor.version=Homebrew
java.version=21.0.10

Version since
4.39

Originally reported in eclipse-jdt/eclipse.jdt.ui#2869.

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