-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Assertion failed (vector overflow) during initialization of ToDPDKDevice #1
Comments
Thanks for reporting the issue, this is indeed a good place to do so. What's your launch command? And particularly the number of threads. I'll try to reproduce the error. I changed some things arround get_runnable_threads not long ago, I may have introduced a regression... Tom |
When I fisrt found it I was running with I also managed to get a configuration file to cause the crash without requiring our custom elements (it appears that in my instance doing some stretching with compund elements causes Click to schedule initalization differently):
|
Ok I reproduced it, I'm looking into it ;) |
Your approach is the good one. It's what's done with FromDevice / ToDevice and what I also did with FromNetmapDevice/ToNetmapDevice. Forgot that with DPDK... The problem is that in FromDPDKDevice, the get_runnable_thread() function depends on this element being initialized. But to initialize ToDPDKDevice, in our model we need to know which elements will "launch" threads so we can find which threads will end up in the ToDPDKDevice and allocate the minimal number of queues. So ToDPDKDeive call get_runnable_threads() on upstream elements in its own initialization routine. It's still a little unclean. I was thinking of adding a thread-initialization phase or something like that. But last commit a62349e solve your problem, and no it should not introduce any bug. Thanks for reporting ! |
* EnsureDPDKBuffer: handle Packet::make errors gracefully * Fix previous commit * Correct fix...
Hi Tom,
(I realize there are no issues yet, hope this is the approppriate place for bug reports/help)
I was dealing with a failed assertion raised by the Vector indexing operation. Here's the stack trace just before the failure:
Where:
#7
-#5
,this
is an instance ofToDPDKDevice
#2
, instead,this
is aFromDPDKDevice
which (if I'm not mistaken) has not been initialized yet:For the moment I've been able to fix this by forcing FromDPDKDevice to initialized earlier patching its
configure_phase
(which actually also influences initalization order):Not sure whether this could have subtle drawbacks, would you suggest any other approach?
Some more context follows.
Excerpt from the configuration:
This appears to happen only when there is actually something in the middle, but I guess this depends on how Click chooses the order for configuration/initialization.
configure line
It's almost like the one in the README except for
-Og
,--disable-batch
, and--with-numa=no
(those have other unrelated stories)uname -a
Linux anslab1 3.16.0-50-generic Prevent division with zero in TimestampDiff average handler #67~14.04.1-Ubuntu SMP Fri Oct 2 22:07:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
DPDK version:
2.2.0
Besides the issue, thanks for all the open source work.
Best regards,
Davide Kirchner
The text was updated successfully, but these errors were encountered: