Ok I found the cause.

The host /dev/random is depleted and since go runtime require 64 bytes of
random
it can take a while.

Best regards

Benoît

On Fri, Oct 14, 2016 at 4:29 PM, Tomasz Grabiec <tgrab...@scylladb.com>
wrote:

>
>
> On Fri, Oct 14, 2016 at 4:14 PM, Benoît Canet <ben...@cloudius-systems.com
> > wrote:
>
>>
>> QEMU on ubuntu 16.04.
>>
>> benoit@alfred:~/osv$ cat /proc/sys/kernel/random/entropy_avail
>>
>> 58
>>
>>
> That's not a lot.  Try watching it during your test.
>
>
>> Some go debugging interleaved.
>>
>> OSv v0.24-199-g733d26f
>> 4 CPUs detected
>> Firmware vendor: SeaBIOS
>> bsd: initializing - done
>> VFS: mounting ramfs at /
>> VFS: mounting devfs at /dev
>> net: initializing - done
>> vga: Add VGA device instance
>> eth0: ethernet address: 52:54:00:12:34:56
>> virtio-blk: Add blk device instances 0 as vblk0, devsize=10737418240
>> random: virtio-rng registered as a source.
>> random: intel drng, rdrand registered as a source.
>>
>>
> Looks like we have both virtio-rng and drng registered as entropy sources.
>
> There is a thread which polls them 10 times a second. See random_kthread()
> from random_harvestq.cc. It feeds entropy into the system via
> random_process_event() from yarrow.cc. Maybe we're not replenishing entropy
> fast enough. Check if and which live sources provide entropy. Try
> increasing the rate.
>
> random: <Software, Yarrow> initialized
>> VFS: unmounting /dev
>> VFS: mounting zfs at /zfs
>> zfs: mounting osv/zfs from device /dev/vblk0.1
>> VFS: mounting devfs at /dev
>> VFS: mounting procfs at /proc
>> program zpool.so returned 1
>> BSD shrinker: event handler list found: 0xffffa00001e6ca80
>>         BSD shrinker found: 1
>> BSD shrinker: unlocked, running
>> [I/42 dhcp]: Waiting for IP...
>> [I/252 dhcp]: Server acknowledged IP for interface eth0
>> eth0: 192.168.122.15
>> [I/252 dhcp]: Configuring eth0: ip 192.168.122.15 subnet mask 255.255.255.0 
>> gateway 192.168.122.1 MTU 1500
>> args
>> 0
>> 1.5
>> 4.0
>> 6.0
>> 6.5
>> 6.0
>> 6.2
>> 6.1
>> typ != _STT_FUNC %i
>> true 0 bind != _STB_GLOBAL && bind != _STB_WEAK %i
>> falsesym.st_shndx == _SHN_UNDEF %ifalse6.5
>> 6.0
>> 6.5
>> 7
>> osinit
>> schedinit enter
>> schedinit 1
>> schedinit 2
>> schedinit 3
>> schedinit 4
>> schedinit 5
>> schedinit 6
>> schedinit 7
>> schedinit 8
>> alginit 1
>> alginit 2
>> alginit 3
>> getRandomData 1
>> getRandomData 3
>> getRandomData 4
>> random: blocking on read.
>> random: device unblocked.
>> getRandomData 5
>> getRandomData 6
>> getRandomData 7
>> alginit 4
>> schedinit 9
>> schedinit 10
>> schedinit 11
>> schedinit 12
>> schedinit 13
>> schedinit 14
>> schedinit 15
>> schedinit 16
>> schedinit 17
>> schedinit 18
>> schedinit 19
>> schedinit 21
>> schedinit 25
>> schedinit 27
>> schedinit exit
>> newproc enter
>> newproc exit
>> mstart enter
>> sigaltstack() stubbed
>> mstart enter
>> mstart enter
>> newproc enter
>> blub
>>
>> [backtrace]
>> 0x0000000000202525 <???+2106661>
>> 0x000000000032a97a <mmu::vm_fault(unsigned long, exception_frame*)+298>
>> 0x0000000000388b98 <page_fault+136>
>> 0x0000000000387a36 <???+3701302>
>> 0x000010000147e0d2 <???+21487826>
>> 0x000010000147f15b <???+21492059>
>> 0x000010000147c7db <???+21481435>
>> 0x000010000147c6cc <???+21481164>
>> 0x00001000014cf232 <???+21819954>
>> 0x000020000055ff3f <???+5635903>
>>
>>
>
>
>
>>
>>
>> On Fri, Oct 14, 2016 at 3:57 PM, Tomasz Grabiec <tgrab...@scylladb.com>
>> wrote:
>>
>>>
>>>
>>> On Fri, Oct 14, 2016 at 3:39 PM, Benoît Canet <
>>> ben...@cloudius-systems.com> wrote:
>>>
>>>>
>>>> Hello list,
>>>>
>>>> In the process of porting go to OSv I noticed that the Go runtime
>>>> initialization stall half the time waiting in a read for /dev/urandom.
>>>>
>>>> The message OSv output is "random: blocking on read.".
>>>>
>>>> It then sometime proceeed to unblock itself a couple dozen of seconds
>>>> later.
>>>>
>>>> Does it ring a bell ? Is it expected behavior from /dev/urandom ?
>>>>
>>>
>>> It looks like entropy pool was depleted. Maybe no hardware entropy
>>> sources were detected and we were using only slow interrupt entropy
>>> harvesting.
>>>
>>> Another option is that you are using virtio-rng and entropy was depleted
>>> on your host. Check with `cat /proc/sys/kernel/random/entropy_avail`
>>>
>>> Which hypervisor are you running on?
>>>
>>> Can you show your debug console output?
>>>
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "OSv Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to osv-dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to