1

Trying to install the graphviz library and am seeing this:

mtaylor@galaxy:~/tmp/apt-strace-output$ sudo apt install -y graphviz
Reading package lists... Done
Building dependency tree       
Reading state information... Done
graphviz is already the newest version (2.40.1-2).
The following packages were automatically installed and are no longer required:
  acl colord-data emboss-data libcolorhug2 libexif12 libgphoto2-l10n libgphoto2-port12 libgusb2
  libhpdf-2.3.0 libieee1284-3 libsane-common
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up libgvc6 (2.40.1-2) ...
Error: /usr/lib/x86_64-linux-gnu/graphviz/config6a is zero sized, or other read error.
Warning: Could not load "/usr/lib/x86_64-linux-gnu/graphviz/libgvplugin_pango.so.6" - file not found
Segmentation fault (core dumped)
dpkg: error processing package libgvc6 (--configure):
 installed libgvc6 package post-installation script subprocess returned error exit status 139
dpkg: dependency problems prevent configuration of graphviz:
 graphviz depends on libgvc6; however:
  Package libgvc6 is not configured yet.

dpkg: error processing package graphviz (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
  Processing triggers for libc-bin (2.27-3ubuntu1.2) ...
Errors were encountered while processing:
 libgvc6
 graphviz
E: Sub-process /usr/bin/dpkg returned an error code (1)

config6a is indeed a 0 byte long file located in /usr/lib/x86_64-linux-gnu/graphviz. I've no idea what the use or relevance of that file is.

Re-ran the above using sudo strace -o outputfile.txt -ff -s 80 apt install graphviz which output one output file for the parent process and 41 child processes. One of the children executes execve("/usr/sbin/libgvc6-config-update") and eventually segfaults. The last 18 lines of the file read:

access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libdatrie.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\20\0\0\0\0\0\0@\0\0\0\0\0\0\0000a\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\32\0\31\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0644, st_size=26544, ...}) = 0
mmap(NULL, 2121744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f9676801000
mprotect(0x7f9676807000, 2093056, PROT_NONE) = 0
mmap(0x7f9676a06000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x5000) = 0x7f9676a06000
close(4)                                = 0
mprotect(0x7f9676a06000, 4096, PROT_READ) = 0
mprotect(0x7f9676c32000, 8192, PROT_READ) = 0
mprotect(0x7f9676e3c000, 4096, PROT_READ) = 0
mprotect(0x7f96770da000, 4096, PROT_READ) = 0
mprotect(0x7f9677325000, 12288, PROT_READ) = 0
mprotect(0x7f967753d000, 4096, PROT_READ) = 0
mprotect(0x7f9677c53000, 4096, PROT_READ) = 0
mprotect(0x7f9677e5d000, 4096, PROT_READ) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xaf26} ---
+++ killed by SIGSEGV (core dumped) +++

I have read that generally one does not want to have a /etc/ld.so.nohwcap file. I'd love to know what to try next to fix this!

Thanks in advance,

Marshall

System configuration
Arch: AMD 64 
OS: Ubuntu 18.04.4 LTS 
Kernel: 4.15.0-111-generic #112-Ubuntu SMP (x86_64)
  • Look at the two lines *above* the segfault, where things start to go wrong. Consider re-installing that package (`sudo apt install --reinstall packagename`) – user535733 Jul 17 '20 at 00:35
  • Please add output of `ldd /usr/lib/x86_64-linux-gnu/graphviz/libgvplugin_pango.so* | grep local` to the question. – N0rbert Jul 17 '20 at 18:20

1 Answers1

0

Reinstall package containing the libgvplugin_pango.so.6 and the graphviz package with

sudo rm /usr/lib/x86_64-linux-gnu/graphviz/config6a

sudo apt-get install --reinstall libgvc6 graphviz
N0rbert
  • 97,162
  • 34
  • 239
  • 423
  • @Nmath - the only way I could run apt autoremove and not get the same segfault as before is to run **sudo apt purge libgv6** first. Then the autoremove completes without any errors or warnings. @N0rbert - Like I mentioned above, I apt purged libgvc6, ran apt autoremove, removed config6a, then ran the 'apt-get install --reinstall' command you stated. I get the same segfault. In the error output it states: `Warning: Could not load "/usr/lib/x86_64-linux-gnu/graphviz/libgvplugin_pango.so.6" - file not found` stat shows that file as a symlink to a file that exists. Bug? – Marshall Taylor Jul 17 '20 at 17:54
  • I had planned to update this system to 20.04LTS. Would doing that potentially fix this problem or just propagate this broken-ness to a new release? – Marshall Taylor Jul 17 '20 at 18:21
  • On clean 18.04 LTS the installation of graphviz went well. So there is some problem in current setup. – N0rbert Jul 17 '20 at 18:23