Description of problem:
when installing openstack on redhat 7.0 beta with dynamic ipv4 address , ssh-keygen fails .
07:15:01 ERROR : Failed to run remote script, stdout:
07:15:01 stderr: + trap t ERR
07:15:01 + ssh-keygen -t rsa -b 2048 -f /var/tmp/packstack/20140514-011453-k9pyaJ/nova_migration_key -N ''
07:15:01 gethostname: File name too long
07:15:01 ++ t
07:15:01 ++ exit 1
Version-Release number of selected component (if applicable):
1. vm redhat 7.0 with dynamic ip address
2. installing openstack with packstack
3. fails on ssh-keygen with error : gethostname: File name too long
ssh-keygen should not fail
As `gethostname()` is a libc library call, I'm switching the bug report to the glibc package.
gethostname tells it like it is - the hostname is longer than what the application anticipated (with its len argument). The fix to this is to increase the buffer size passed to gethostname and repeat the call.
That is, it's not a bug in glibc.
Thanks Siddhesh, (In reply to Siddhesh Poyarekar from comment #3)
> gethostname tells it like it is - the hostname is longer than what the
> application anticipated (with its len argument). The fix to this is to
> increase the buffer size passed to gethostname and repeat the call.
True enough, thanks.
> That is, it's not a bug in glibc.
Moving to OpenSSH then, where the calling program resides.
upstream patch https://bugzilla.mindrot.org/attachment.cgi?id=2448&action=diff
According to my tests, this is more +-1 error than anything else. The problem is relevant only when the hostname is precisely 64 bytes long, in which case gethostname(lname, MAXHOSTNAMELEN) (where MAXHOSTNAMELEN is 64) can not accomodate terminating byte. (Well, the problem might be there for longer names but they are not allowed to be longer when I tested it with 'hostname' command.)
Anyway, the patch helps, I just wanted to note my findings.
*** Bug 1187689 has been marked as a duplicate of this bug. ***
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.