https://sourceware.org/bugzilla/show_bug.cgi?id=32218

            Bug ID: 32218
           Summary: Debuginfod fails with too large filename
           Product: elfutils
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: debuginfod
          Assignee: unassigned at sourceware dot org
          Reporter: business.janrupf at gmail dot com
                CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

Created attachment 15720
  --> https://sourceware.org/bugzilla/attachment.cgi?id=15720&action=edit
strace of the described debuginfod command

In some cases the debug source paths embedded in the binaries can reach rather
unwieldy lengths.

For example, building the flutter engine using the Nix package manager
generates the following source file path embedded into the binary:

> /nix/store/wa3sj5nr8nn55sn08x0876b4y8kjaz9n-flutter-engine-debug-unopt-c9b9d5780da342eb3f0f5e439a7db06f7d112575/out/host_debug_unopt/../../../../../build/flutter-engine-source-c9b9d5780da342eb3f0f5e439a7db06f7d112575-x86_64-linux-x86_64-linux/src/flutter/shell/platform/embedder/embedder_engine.cc

(Yes, thats a single source file!)

Attempting to download the source file using debuginfod-find:
> debuginfod-find -vv source 1003192840738cee9883800e18a58452fdf72454 
> /nix/store/wa3sj5nr8nn55sn08x0876b4y8kjaz9n-flutter-engine-debug-unopt-c9b9d5780da342eb3f0f5e439a7db06f7d112575/out/host_debug_unopt/../../../../../build/flutter-engine-source-c9b9d5780da342eb3f0f5e439a7db06f7d112575-x86_64-linux-x86_64-linux/src/flutter/shell/platform/embedder/embedder_engine.cc

This generates the following log:
> debuginfod_find_source 1003192840738cee9883800e18a58452fdf72454 
> /nix/store/wa3sj5nr8nn55sn08x0876b4y8kjaz9n-flutter-engine-debug-unopt-c9b9d5780da342eb3f0f5e439a7db06f7d112575/out/host_debug_unopt/../../../../../build/flutter-engine-source-c9b9d5780da342eb3f0f5e439a7db06f7d112575-x86_64-linux-x86_64-linux/src/flutter/shell/platform/embedder/embedder_engine.cc
> server urls "http://127.0.0.1:1949";
> checking build-id
> checking filename
> suffix 
> ##nix##store##wa3sj5nr8nn55sn08x0876b4y8kjaz9n-flutter-engine-debug-unopt-c9b9d5780da342eb3f0f5e439a7db06f7d112575##out##host_debug_unopt##..##..##..##..##..##build##flutter-engine-source-c9b9d5780da342eb3f0f5e439a7db06f7d112575-x86_64-linux-x86_64-linux##src##flutter##shell##platform##embedder##embedder_engine.cc
> checking cache dir /home/janrupf/.cache/debuginfod_client
> using timeout 90
> not found Invalid argument (err=-22)
> Server query failed: Invalid argument

(I have attached an strace of the command above)

The problem here seems to be that debuginfod attempts to create a file name
which includes essentially the entire path with / replaced with 2 #, which
ultimately ends up generating a filename longer than 255 characters, thus
creating the file fails.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to