Project

General

Profile

Bug #50707

Updated by Kefu Chai almost 3 years ago

files_high_water is defined as uint64_t but when compiling on 32bit these max functions fail as they are both not considered uint64_t by gcc 10 even though they are 

   files_high_water = std::max(files_high_water, 
                                static_cast<uint64_t>(in_flight.size())); 

 Compile output: 
 <pre> 
 /builds/a16bitsysop/aports/community/ceph/src/ceph-16.2.3/src/mds/PurgeQueue.cc: In member function 'void PurgeQueue::_execute_item(const PurgeItem&, uint64_t)': 
 3899/builds/a16bitsysop/aports/community/ceph/src/ceph-16.2.3/src/mds/PurgeQueue.cc:598:70: error: no matching function for call to 'max(size_t&, uint64_t)' 
 3900    598 |                                 static_cast<uint64_t>(in_flight.size())); 
 3901        |                                                                        ^ 
 </pre>

Back