Bug 156216 - Writer crashes in ~1 million lines of text with line numbering enabled
Summary: Writer crashes in ~1 million lines of text with line numbering enabled
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
24.2.0.0 alpha0+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: haveBacktrace
Depends on:
Blocks: Skia
  Show dependency treegraph
 
Reported: 2023-07-09 23:57 UTC by Hossein
Modified: 2023-09-05 05:44 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments
Loading 2 million lines in MS Word (35.02 KB, image/png)
2023-09-04 19:52 UTC, Hossein
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hossein 2023-07-09 23:57:21 UTC
Description:
When copying and pasting several lines to achieve 1 million lines of text with line numbering, sometime LibreOffice Writer crashes in around 800k lines of text.

Steps to Reproduce:
1. Open LibreOffice Writer
2. Copy and paste lines with 1 character inside each line to reach around 1 million lines of code
3. Enable and disable line numbering with interval set to 1 line

Actual Results:
LibreOffice Writer sometimes crashes

Expected Results:
LibreOffice Writer should not crash with ~1 million lines of text


Reproducible: Always


User Profile Reset: No

Additional Info:
Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 11419c34eb38b1d15bd83ca8c511346a7bc30537
CPU threads: 20; OS: Windows 10.0 Build 22621; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_DE); UI: en-US
Calc: CL threaded
Comment 1 Hossein 2023-07-10 00:15:52 UTC
Backtrace created with Visual Studio on Windows:

 	ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28	C++
 	ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154	C++
 	ucrtbased.dll!abort() Line 61	C++
 	skialo.dll!sk_abort_no_print() Line 32	C++
 	skialo.dll!GrSurface::ComputeSize(const GrBackendFormat & format, SkISize dimensions, int colorSamplesPerPixel, GrMipmapped mipmapped, bool binSize) Line 45	C++
 	skialo.dll!GrVkTextureRenderTarget::onGpuMemorySize() Line 198	C++
 	skialo.dll!GrResourceCache::insertResource(GrGpuResource * resource) Line 83	C++
 	skialo.dll!GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu * gpu, SkISize dimensions, sk_sp<GrVkImage> texture, sk_sp<GrVkImage> colorAttachment, sk_sp<GrVkImage> resolveAttachment, GrMipmapStatus mipmapStatus, GrWrapCacheable cacheable, std::basic_string_view<char,std::char_traits<char>> label) Line 63	C++
 	skialo.dll!GrVkTextureRenderTarget::MakeWrappedTextureRenderTarget(GrVkGpu * gpu, SkISize dimensions, int sampleCnt, GrWrapOwnership wrapOwnership, GrWrapCacheable cacheable, const GrVkImageInfo & info, sk_sp<skgpu::MutableTextureStateRef> mutableState) Line 167	C++
>	skialo.dll!GrVkGpu::onWrapRenderableBackendTexture(const GrBackendTexture & backendTex, int sampleCnt, GrWrapOwnership ownership, GrWrapCacheable cacheable) Line 1444	C++
 	skialo.dll!GrGpu::wrapRenderableBackendTexture(const GrBackendTexture & backendTex, int sampleCnt, GrWrapOwnership ownership, GrWrapCacheable cacheable) Line 357	C++
 	skialo.dll!GrResourceProvider::wrapRenderableBackendTexture(const GrBackendTexture & tex, int sampleCnt, GrWrapOwnership ownership, GrWrapCacheable cacheable) Line 420	C++
 	skialo.dll!GrProxyProvider::wrapRenderableBackendTexture(const GrBackendTexture & backendTex, int sampleCnt, GrWrapOwnership ownership, GrWrapCacheable cacheable, sk_sp<skgpu::RefCntedCallback> releaseHelper) Line 677	C++
 	skialo.dll!SkSurface::MakeFromBackendTexture(GrRecordingContext * rContext, const GrBackendTexture & tex, GrSurfaceOrigin origin, int sampleCnt, SkColorType colorType, sk_sp<SkColorSpace> colorSpace, const SkSurfaceProps * props, void(*)(void *) textureReleaseProc, void * releaseContext) Line 540	C++
 	skialo.dll!sk_app::VulkanWindowContext::createBuffers(VkFormat format, unsigned int usageFlags, SkColorType colorType, VkSharingMode sharingMode) Line 378	C++
 	skialo.dll!sk_app::VulkanWindowContext::createSwapchain(int width, int height, const sk_app::DisplayParams & params) Line 339	C++
 	skialo.dll!sk_app::VulkanWindowContext::getBackbufferSurface() Line 543	C++
 	vcllo.dll!SkiaSalGraphicsImpl::flushSurfaceToWindowContext() Line 405	C++
 	vcllo.dll!SkiaSalGraphicsImpl::performFlush() Line 399	C++
 	vcllo.dll!SkiaFlushIdle::Invoke() Line 270	C++
 	vcllo.dll!Scheduler::CallbackTaskScheduling() Line 480	C++
 	vcllo.dll!SalTimer::CallCallback() Line 55	C++
 	vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer() Line 166	C++
 	vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 524	C++
 	vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 580	C++
 	vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 352	C++
 	vcllo.dll!Application::Yield() Line 437	C++
 	vcllo.dll!Application::Execute() Line 330	C++
 	sofficeapp.dll!desktop::Desktop::Main() Line 1592	C++
 	vcllo.dll!ImplSVMain() Line 204	C++
 	vcllo.dll!SVMain() Line 237	C++
 	[External Code]	
 	soffice.bin!sal_main() Line 51	C
 	soffice.bin!main(int argc, char * * argv) Line 49	C
 	[External Code]
Comment 2 Telesto 2023-07-15 03:12:00 UTC
Is this a Skia Vulkan only problem? It would seem so based on the backtrace
Comment 3 Hossein 2023-09-04 19:45:45 UTC
(In reply to Telesto from comment #2)
> Is this a Skia Vulkan only problem? It would seem so based on the backtrace
It seems so.
I've tested with 2 million lines and LibreOffice didn't crash:
Version: 7.6.0.3 (X86_64) / LibreOffice Community
Build ID: 69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
CPU threads: 20; OS: Windows 10.0 Build 22621; UI render: default; VCL: win
Locale: en-US (en_DE); UI: en-GB
Calc: CL threaded

I used a file containing 1-2 million, One number in each line.
Comment 4 Hossein 2023-09-04 19:52:48 UTC
Created attachment 189350 [details]
Loading 2 million lines in MS Word

For a comparison, loading the above 2 million lines file lead to this error message in MS Word:

"You have exceeded the maximum number of pages supported by Microsoft Word, or this document may be damaged. Microsoft Word will save the document, but to repair the document, use Open and Repair command (click Open, then click the arrow next to the Open button)."

Then it goes into the "Draft" mode, and remains there, and not going back to "Print layout". Number of pages is visible when you decide to print, and it is bigger that 22000.