Hi,

>> A quick workaround to get facter to run is to create the three
>> directories:
> 
>> /etc/facter/facts.d
>> /etc/puppetlabs/facter/facts.d
>> /opt/puppetlabs/facter/facts.d
> 
> Yup, confirmed that works.  Thank you!

thanks for the workaround.

while it seems to work when running facter as root, I'm still getting
the same crash (back trace seems to be the same) when running facter as
an unprivileged user even though the three directories are world-readable.
I'm reporting this added detail since using puppet/facter as an
unprivileged user can be important for validating syntax, running spec
tests, etc. during development.


$ ls -ld /etc/facter/facts.d/ /etc/puppetlabs/facter/facts.d
/opt/puppetlabs/facter/facts.d
drwxr-xr-x 2 root root 4096 Jun 15 17:10 /etc/facter/facts.d/
drwxr-xr-x 2 root root 4096 Jun 15 17:10 /etc/puppetlabs/facter/facts.d
drwxr-xr-x 2 root root 4096 Jun 15 17:10 /opt/puppetlabs/facter/facts.d

$ facter
free(): invalid size
Aborted

$ gdb facter
[...]
Reading symbols from facter...
(No debugging symbols found in facter)
(gdb) r
Starting program: /usr/bin/facter
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 1565235]
free(): invalid pointer

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff79bf55b in __GI_abort () at abort.c:79
#2  0x00007ffff7a18038 in __libc_message (action=action@entry=do_abort,
fmt=fmt@entry=0x7ffff7b24f3e "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007ffff7a1f3da in malloc_printerr (str=str@entry=0x7ffff7b230e0
"free(): invalid pointer") at malloc.c:5339
#4  0x00007ffff7a20dcc in _int_free (av=<optimized out>, p=<optimized
out>, have_lock=0) at malloc.c:4173
#5  0x00007ffff7e775d4 in ?? () from
/usr/lib/x86_64-linux-gnu/libfacter.so.3.11.0
#6  0x00007ffff7e77bd8 in
facter::facts::collection::add_external_facts(std::vector<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > > const&) () from
/usr/lib/x86_64-linux-gnu/libfacter.so.3.11.0
#7  0x000055555557154c in main ()

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to