Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1423556 - fedfs-utils: FTBFS in rawhide
Summary: fedfs-utils: FTBFS in rawhide
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: fedfs-utils
Version: 26
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ian Kent
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F26FTBFS
TreeView+ depends on / blocked
 
Reported: 2017-02-17 13:52 UTC by Fedora Release Engineering
Modified: 2017-03-21 05:15 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-03-21 05:15:43 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
build.log (28.12 KB, text/plain)
2017-02-17 13:52 UTC, Fedora Release Engineering
no flags Details
root.log (91.91 KB, text/plain)
2017-02-17 13:52 UTC, Fedora Release Engineering
no flags Details
state.log (639 bytes, text/plain)
2017-02-17 13:52 UTC, Fedora Release Engineering
no flags Details

Description Fedora Release Engineering 2017-02-17 13:52:05 UTC
Your package fedfs-utils failed to build from source in current rawhide.

https://koji.fedoraproject.org/koji/taskinfo?taskID=17715053

For details on mass rebuild see https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

Comment 1 Fedora Release Engineering 2017-02-17 13:52:12 UTC
Created attachment 1252049 [details]
build.log

Comment 2 Fedora Release Engineering 2017-02-17 13:52:16 UTC
Created attachment 1252050 [details]
root.log

Comment 3 Fedora Release Engineering 2017-02-17 13:52:19 UTC
Created attachment 1252051 [details]
state.log

Comment 4 Chuck Lever 2017-02-17 15:21:57 UTC
The problem appears to be the use of CRYPTO_malloc_init in connsec.c.

connsec.c: In function 'nsdb_connsec_crypto_startup':
connsec.c:47:2: warning: implicit declaration of function 'CRYPTO_malloc_init'; did you mean 'CRYPTO_malloc'? [-Wimplicit-function-declaration]
  CRYPTO_malloc_init();
  ^~~~~~~~~~~~~~~~~~
  CRYPTO_malloc
connsec.c: In function 'nsdb_connsec_crypto_shutdown':
connsec.c:65:2: warning: 'ERR_remove_thread_state' is deprecated [-Wdeprecated-declarations]
  ERR_remove_thread_state(NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/opensslconf.h:27:0,
                 from /usr/include/openssl/ui.h:13,
                 from /usr/include/openssl/engine.h:29,
                 from connsec.c:30:
/usr/include/openssl/err.h:246:1: note: declared here
 DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *))
 ^

A call to CRYPTO_malloc_init is open-coded in nsdb_connsec_crypto_startup(). It appears that OpenSSL 1.1.0 and later do not provide CRYPTO_malloc_init.

The OpenSSL FAQ states (PROG #2) that CRYPTO_malloc_init() must be invoked before the first use of the OpenSSL API. Is this call no longer necessary? Or is there another call that should be made instead? Or has that call been moved to another header/library?

I haven't found any clear documentation of this change. The common element to the advice I found was "downgrade your OpenSSL library".

Comment 5 Fedora End Of Life 2017-02-28 11:30:50 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 6 Ian Kent 2017-03-09 04:23:41 UTC
(In reply to Chuck Lever from comment #4)
> The problem appears to be the use of CRYPTO_malloc_init in connsec.c.

Yep, and that might be the only fedfs-utils problem with the
change from openssl-1.0 to openssl-1.1, not sure yet.

snip ...

> 
> A call to CRYPTO_malloc_init is open-coded in nsdb_connsec_crypto_startup().
> It appears that OpenSSL 1.1.0 and later do not provide CRYPTO_malloc_init.
> 
> The OpenSSL FAQ states (PROG #2) that CRYPTO_malloc_init() must be invoked
> before the first use of the OpenSSL API. Is this call no longer necessary?
> Or is there another call that should be made instead? Or has that call been
> moved to another header/library?
> 
> I haven't found any clear documentation of this change. The common element
> to the advice I found was "downgrade your OpenSSL library".

Documentation on the changes is hard to find but I saw this:
http://openssl.6102.n7.nabble.com/Cleanup-and-changing-the-malloc-routines-td59913.html

which implies that at some point (possibly at openssl-1.0)
CRYPTO_malloc_init() should be changed to OPENSSL_malloc_init().

So there's probably a need for some autoconf to obtain OpenSSL
version info. and conditional call to the appropriate function
based on the version obtained.

We could add a patch that just changes the call to get it to build
to give us time to put together a more complete fix.

But now I think I know what's going on I'll need to ask around a
bit and see if anyone knows the details about the changes.

Ian

Comment 7 Ian Kent 2017-03-09 04:35:28 UTC
(In reply to Ian Kent from comment #6)
> 
> which implies that at some point (possibly at openssl-1.0)

Umm ... that should be openssl-1.1.

Oops!

Comment 8 Upstream Release Monitoring 2017-03-21 05:11:46 UTC
iankent's fedfs-utils-0.10.5-6.fc27 completed http://koji.fedoraproject.org/koji/buildinfo?buildID=871043

Comment 9 Ian Kent 2017-03-21 05:15:43 UTC
As far as I can tell CRYPTO_malloc_init() and ERR_remove_thread_state()
did nothing for quite a while.

CRYPTO_malloc_init() has been removed and ERR_remove_thread_state()
reamins but is deprecated.

I've added a simple patch to check the version of OpenSSL and not
call these functions if OpenSSL is at version 1.1 or above. The
fedfs-utils package has now been buildt in Rawhide.

I'll post the patch upstream for further discussion.

Ian


Note You need to log in before you can comment on or make changes to this bug.