Project

General

Profile

Actions

Bug #43044

closed

parse dpdk coremask occur out of range while using stoull

Added by Hu Ye over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

when we want to use cpu lcores more than 64 to run DPDK, we set the DPDK coremask such as "oXf0000000000000000" in the ceph.conf.

The "stoll" function used by "dpdk::eal:init" in src/msg/async/dpdk/dpdk_rte.cc will occur out of range error, because the "stoll" is designed for 64 bits.

This error maybe also occur in spdk, where the "stoll" be used by "NVMEManager::try_get" in src/os/bluestore/NVMEDevice.cc.

Here is the log printed by ceph_perf_msgr_server:

[root@ceph2 ~]# CEPH_CONF=/root/ceph.conf /usr/bin/ceph_perf_msgr_server 172.19.20.180:7000 1 10
 This tool won't handle connection error alike things,
please ensure the proper network environment to test.
 Or ctrl+c when meeting error and restart tests
 using ms-public-type async+dpdk
       bind ip:port 172.19.20.180:7000
       worker threads 1
       thinktime(us) 10
terminate called after throwing an instance of 'std::out_of_range'
  what():  stoull
*** Caught signal (Aborted) **
 in thread 7fc105d24d40 thread_name:ceph_perf_msgr_
 ceph version 15.0.0-4716-gae4d6f4901 (ae4d6f49016ec331c88734f7210c0eec36e6168e) octopus (dev)
 1: (()+0xf5d0) [0x7fc1059215d0]
 2: (gsignal()+0x37) [0x7fc0f9403207]
 3: (abort()+0x148) [0x7fc0f94048f8]
 4: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7fc0f9d127d5]
 5: (()+0x5e746) [0x7fc0f9d10746]
 6: (()+0x5e773) [0x7fc0f9d10773]
 7: (()+0x5e993) [0x7fc0f9d10993]
 8: (std::__throw_out_of_range(char const*)+0x77) [0x7fc0f9d65857]
 9: (dpdk::eal::init(CephContext*)+0x289) [0x7fc0fb961869]
 10: (DPDKStack::spawn_worker(unsigned int, std::function<void ()>&&)+0xa1) [0x7fc0fb931521]
 11: (NetworkStack::start()+0xb5) [0x7fc0fb696d25]
 12: (AsyncMessenger::AsyncMessenger(CephContext*, entity_name_t, std::string const&, std::string, unsigned long)+0x904) [0x7fc0fb64c104]
 13: (Messenger::create(CephContext*, std::string const&, entity_name_t, std::string, unsigned long, unsigned long)+0xd1) [0x7fc0fb6353b1]
 14: (MessengerServer::MessengerServer(std::string const&, std::string const&, int, int)+0x298) [0x559a804b6b38]
 15: (main()+0x2eb) [0x559a804ae06b]
 16: (__libc_start_main()+0xf5) [0x7fc0f93ef3d5]
 17: (()+0x11350) [0x559a804ae350]
2019-11-27T15:35:25.454+0800 7fc105d24d40 -1 *** Caught signal (Aborted) **

Actions #1

Updated by Greg Farnum over 4 years ago

  • Project changed from Ceph to Messengers
Actions #2

Updated by Kefu Chai over 4 years ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 32173
Actions #3

Updated by Kefu Chai over 4 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF