Hello Damjan,

On Fri, Apr 29, 2022 at 04:53:59AM +0200, Damjan Jovanovic wrote:

> On Thu, Apr 28, 2022 at 8:46 PM Arrigo Marchiori <ard...@yahoo.it.invalid>
> wrote:
> 
> > Hello Damjan,
> >
> > On Thu, Apr 28, 2022 at 06:53:43PM +0200, Damjan Jovanovic wrote:
> >
> > > On Thu, Apr 28, 2022 at 6:12 PM Arrigo Marchiori <ard...@yahoo.it.invalid
> > >
> > > wrote:
> > >
> > > > Dear Damjan, All,
> > > >
> > > > On Tue, Apr 26, 2022 at 07:56:22PM +0200, Damjan Jovanovic wrote:
> > > >
> > > > > On Mon, Nov 15, 2021 at 9:57 PM Jim Jagielski <j...@jagunet.com>
> > wrote:
> > > > >
> > > > > > I'm gonna look into the serf->(lib)curl option... Since we don't
> > use
> > > > any
> > > > > > of the fancy features of serf, I'm thinking that the easy option
> > might
> > > > be
> > > > > > best
> > > > >
> > > > >
> > > > >
> > > > > Hi
> > > > >
> > > > > I've ported our WebDAV content provider module from Serf to Curl.
> > > >
> > > > Binary for Linux available here for download:
> > > >
> > > >
> > https://home.apache.org/~ardovm/openoffice/linux/openoffice4-serf2curl-2022-04-28-installed.tar.bz2
> > > >
> > > > I understand from your previous message that you don't really like
> > > > GitHub, so I am writing here.
> > > >
> > > > [...]
> > > > > STATUS
> > > > >
> > > > > It builds and works well on FreeBSD and Windows.
> > > > >
> > > > > Most of the code was reused, and all the operations and semantics
> > > > > previously present with Serf, should have been preserved.
> > > > >
> > > > > Browsing WebDAV files and directories, loading files, overwriting
> > them
> > > > > ("Save"), creating them ("Save As"), renaming and deleting them, all
> > > > works.
> > > >
> > > > I am testing the binary for Linux linked above.
> > > >
> > > > I tried "Open" and entered a https address, that I know is password
> > > > protected.
> > > >
> > > > The current trunk would ask for the password. I got an error message
> > > > instead:
> > > >
> > > > > > Nonexistent object.
> > > > > > Nonexistent file.
> > > >
> > > > The address I tried to open is in the form https://host.domain:port/
> > > >
> > > > I tried to substitute "https" with "davs" and I got the same error.
> > > >
> > > > Maybe something is going wrong in the Linux build?
> > > >
> > > > I will now begin recompiling with debugging symbols enabled. Please
> > > > let me know how I can help.
> > > >
> > >
> > > That's not good :(.
> > >
> > > Set your macro security to "Medium", open the spreadsheet I've attached,
> > > and run the "RunMe" Basic macro. That should enable logging to the
> > console
> > > at the finest level of detail. Then exit and re-run AOO like this:
> > > soffice 2>&1 | tee /tmp/log.txt
> > > and examine the console output interactively as you use AOO, and/or check
> > > the log file afterwards. It should have everything, our logging, HTTP
> > > request and response headers and bodies, Curl's internal logging.
> >
> > I can't get to that point.
> >
> > I fired gdb and it seems that I end up into the blind
> >   catch (Exception const &)
> > block in file ucb/source/core/provprox.cxx:361
> >
> > Method UcbContentProviderProxy::getContentProvider() in fact is called
> > many times, but it only fails when I enter the https url in the "Open"
> > dialog box and press ENTER.
> >
> > Sorry this is all the debugging I can do for today. I hope it helps.
> >
> >
> When I run your Linux binaries, I also get that error.
> 
> One problem is libcurl -> openssl.
> 
> "ldd ./libcurl.so" shows:
>     libssl.so.10 => not found
>     libcrypto.so.10 => not found

This probably means that we have to ship our own binaries of openssl
on Linux.

> When I rename AOO's libcurl.so so that it's forced to use my system libcurl
> instead, it proceeds further, but runs into another problem:
> 
> Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
> 0x0000000000000001 in ?? ()
[...snip of stack trace with no debugging symbols...]
> 
> It gets far enough to log and produces some output before the crash:
> 
>          1        1 2022-04-29 02:24:24.03 CurlSession::CurlSession with
> URL https://10.0.2.2:82/files/
>          2        1 2022-04-29 02:24:24.03 Not using a proxy server
>          3        1 2022-04-29 02:24:24.03 PROPFIND line 914
>          4        1 2022-04-29 02:24:24.03 [CurlINFO  ]   Trying 10.0.2.2:82
> ...
>          5        1 2022-04-29 02:24:24.03 [CurlINFO  ] TCP_NODELAY set
>          6        1 2022-04-29 02:24:24.03 [CurlINFO  ] Connected to
> 10.0.2.2 (10.0.2.2) port 82 (#0)
>          7        1 2022-04-29 02:24:24.03 [CurlINFO  ] ALPN, offering h2
>          8        1 2022-04-29 02:24:24.03 [CurlINFO  ] ALPN, offering
> http/1.1
>          9        1 2022-04-29 02:24:24.04 [CurlINFO  ] successfully set
> certificate verify locations:
>         10        1 2022-04-29 02:24:24.04 [CurlINFO  ]   CAfile:
> /etc/ssl/certs/ca-certificates.crt
>   CApath: /etc/ssl/certs
> 
> It connects and seems to begin the SSL negotiations, and then probably
> crashes while doing the verify_callback we set with SSL_CTX_set_verify().
> 
> I suspect the Curl and/or OpenSSL headers used to build AOO, and their
> libraries available at runtime, are incompatible.
> 
> What happens if you run AOO on the same machine it was built on?

I get more or less the same outcome as you.

To be clear: I rebuilt on ``bare metal'' (no Docker) and ran the
binary straight away. 

The fastest way to crash is to check for updates.

Stack trace: [with debugging symbols only for AOO-provided libraries]

#0  0x00007fff00000001 in  ()
#1  0x00007fffc3d96172 in  () at /usr/lib64/libssl.so.1.1
#2  0x00007fffc3d96772 in  () at /usr/lib64/libssl.so.1.1
#3  0x00007fffc3dc7ac4 in  () at /usr/lib64/libssl.so.1.1
#4  0x00007fffc3dbed06 in  () at /usr/lib64/libssl.so.1.1
#5  0x00007fffc3daaf44 in SSL_do_handshake () at /usr/lib64/libssl.so.1.1
#6  0x00007fffcc199eec in ossl_connect_step2 ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#7  0x00007fffcc19c411 in ossl_connect_common ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#8  0x00007fffcc19d2b7 in Curl_ssl_connect_nonblocking ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#9  0x00007fffcc169302 in https_connecting ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#10 0x00007fffcc16a7ab in Curl_http_connect ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#11 0x00007fffcc1796f2 in multi_runsingle ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#12 0x00007fffcc17a7db in curl_multi_perform ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#13 0x00007fffcc159833 in curl_easy_perform ()
    at 
/workspace/AOO/main/instsetoo_native/unxlngx6.pro/Apache_OpenOffice/installed/install/en-US/openoffice4/program/../program/libcurl.so.4
#14 0x00007fff9aff4d38 in http_dav_ucp::CurlRequest::perform() 
(this=this@entry=0x7fff9bdee500)
    at /workspace/AOO/main/ucb/source/ucp/webdav/CurlRequest.cxx:266
#15 0x00007fff9aff4fc6 in http_dav_ucp::CurlRequest::get(http_dav_ucp::CurlUri, 
rtl::OUString)
    (this=this@entry=0x7fff9bdee500, uri=..., path=...)
    at /workspace/AOO/main/ucb/source/ucp/webdav/CurlRequest.cxx:189
#16 0x00007fff9aff0d57 in http_dav_ucp::CurlSession::GET(rtl::OUString const&, 
std::vector<rtl::OUString, std::allocator<rtl::OUString> > const&, 
http_dav_ucp::DAVResource&, http_dav_ucp::DAVRequestEnvironment const&)
    (this=this@entry=0x7fffa066b8b0, inPath=..., inHeaderNames=..., 
ioResource=..., rEnv=...)
    at /workspace/AOO/main/ucb/source/ucp/webdav/CurlSession.cxx:1098
#17 0x00007fff9afe1229 in 
http_dav_ucp::DAVResourceAccess::GET(std::vector<rtl::OUString, 
std::allocator<rtl::OUString> > const&, http_dav_ucp::DAVResource&, 
com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&)
    (this=0x7fffa0677b50, rHeaderNames=..., rResource=..., xEnv=...)
    at /workspace/AOO/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx:443
#18 0x00007fff9afcd03b in 
http_dav_ucp::Content::open(com::sun::star::ucb::OpenCommandArgument2 const&, 
com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> 
const&) (this=this@entry=0x7fffa066b7b0, rArg=..., xEnv=...)
    at /workspace/AOO/main/ucb/source/ucp/webdav/webdavcontent.cxx:2282

As I wrote above, according to your suspects, it may be worthwile to
bundle curl and openssl binaries. I will try to follow this path. It
should be a matter of parameters to the configure script.

Best regards,
-- 
Arrigo

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to