[squid-dev] Broken trunk after r14735
Amos Jeffries
squid3 at treenet.co.nz
Sun Jul 24 07:04:33 UTC 2016
On 16/07/2016 7:02 a.m., Alex Rousskov wrote:
>
> * After r14735 (Replaced TidyPointer with std::unique_ptr), Squid cannot
> start due to an "std::bad_function_call" exception.
>
...
> ---------- stack traces ------------
>> g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
>
> * bad_function_call exception on startup (tested with r14735, r14737,
> r14740, r14742, r14744):
>
>> terminate called after throwing an instance of 'std::bad_function_call'
>> what(): bad_function_call
>>
>> Program received signal SIGABRT, Aborted.
...
>> #8 0x00007ffff63a5a95 in __cxa_throw ()
>> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
>> #9 0x00007ffff63f7aa2 in std::__throw_bad_function_call() ()
>> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
>> #10 0x000000000099b53e in std::function<int (bio_st*)>::operator()(bio_st*) const (this=0x7fffffffe0e0, __args#0=0x101d8b0)
>> at /usr/include/c++/4.8/functional:2463
>> #11 0x000000000099ae87 in std::unique_ptr<bio_st, std::function<int (bio_st*)> >::~unique_ptr() (this=0x7fffffffe0e0, __in_chrg=<optimized out>)
>> at /usr/include/c++/4.8/bits/unique_ptr.h:184
>> #12 0x00000000009a8fa7 in Ssl::readSslPrivateKey (
>> keyFilename=0xff75a0 "/home/tester/testing/ssl/CA-priv+pub.pem",
>> passwd_callback=0x0) at gadgets.cc:672
>
This seems to mean the functor being given to unique_ptr is not right.
for BIO_Pointer.
One odd difference between BIO_Pointer and others is that the BIO_free
function we give to unique_ptr returns an int. Others are void functions.
So, Alex;
does replacing "BIO_free" with "BIO_vfree" in the ssl/gadgets.h
definition of BIO_POinter fix this one?
Amos
More information about the squid-dev
mailing list