CINXE.COM

1124987 – Fix static TLS usage in Fedora shared libraries.

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="referrer" content="origin"> <script type="text/javascript" src="https://bugzilla.redhat.com/page.cgi?1732715644.684858&id=bayotbase/publicfielddefs.js&hash=b3b9a7c4f04c5537a495c60af7e7c9c0"></script> <script type="text/javascript">var BB_CONFIG = ({"user":{"groups":[],"logged_in":false,"tzsn":"UTC","tzos":0,"tz":"UTC","enterable_products":[]},"defaults":{"platform":"Unspecified","priority":"Unspecified","severity":"Unspecified","op_sys":"Unspecified","bugentry_fields":["summary","product","component","rh_sub_components","severity","priority","comment"]}});</script><script type="text/javascript"> var classifications = '[ { "name": "Red Hat", "description": "Red Hat Products"},{ "name": "Red Hat Storage", "description": "Red Hat (IBM) Storage Products"},{ "name": "JBoss", "description": "JBoss Products"},{ "name": "CentOS", "description": "CentOS Projects"},{ "name": "Fedora", "description": "Fedora Products"},{ "name": "Community", "description": "Community Projects"},{ "name": "oVirt", "description": "oVirt Virtualization Management Projects"},{ "name": "Internal", "description": "Internal Projects."},{ "name": "Other", "description": "Other Miscellaneous Products"},{ "name": "Unclassified", "description": "Not assigned to any classification"},{ "name": "Workflows", "description": "User driven workflows"},{ "name": "Retired", "description": "Products that have reached end of life, were never released, or have moved to a different issue tracking system."} ]'; var c_optgroups = JSON.parse(classifications); </script> <title>1124987 &ndash; Fix static TLS usage in Fedora shared libraries.</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="https://bugzilla.redhat.com/js/yui/assets/skins/sam/autocomplete.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/js/yui/assets/skins/sam/calendar.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/skins/standard/global.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/BayotBase/web/css/base.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/BayotBase/web/jquery-ui-1.12.1.custom/jquery-ui.min.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/skins/standard/bug.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/Voting/web/style.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/ExternalBugs/web/css/global.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/FontAwesome/web/css/all.min.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/RedHat/web/css/redhat.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/RedHat/web/alertify/css/alertify.min.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/RedHat/web/alertify/css/themes/bootstrap.min.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/SelectizeJS/web/css/selectize.bootstrap3.css?1731976238" rel="stylesheet" type="text/css"><link href="https://bugzilla.redhat.com/extensions/SelectizeJS/web/css/SelectizeJS.css?1731976238" rel="stylesheet" type="text/css"> <script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/yahoo-dom-event/yahoo-dom-event.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/cookie/cookie-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/js/jquery-3.6.0.min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/jquery-ui-1.12.1.custom/jquery-ui.min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/js/jquery.cookie.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/js/jquery.jsonrpc.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/js/Base.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/BayotBase/web/js/bayot.util.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/datasource/datasource-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/connection/connection-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/json/json-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/autocomplete/autocomplete-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/yui/calendar/calendar-min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/global.js?1731976238"></script> <script type="text/javascript"> <!-- YAHOO.namespace('bugzilla'); YAHOO.util.Event.addListener = function (el, sType, fn, obj, overrideContext) { if ( ("onpagehide" in window || YAHOO.env.ua.gecko) && sType === "unload") { sType = "pagehide"; }; var capture = ((sType == "focusin" || sType == "focusout") && !YAHOO.env.ua.ie) ? true : false; return this._addListener(el, this._getType(sType), fn, obj, overrideContext, capture); }; if ( "onpagehide" in window || YAHOO.env.ua.gecko) { YAHOO.util.Event._simpleRemove(window, "unload", YAHOO.util.Event._unload); } function unhide_language_selector() { YAHOO.util.Dom.removeClass( 'lang_links_container', 'bz_default_hidden' ); } YAHOO.util.Event.onDOMReady(unhide_language_selector); var BUGZILLA = { param: { cookiepath: '\/', maxusermatches: 5, maxattachmentsize: 20000, duplicate_or_move_bug_status: "CLOSED" }, constant: { COMMENT_COLS: 80 }, string: { attach_desc_required: "You must enter a Description for this attachment.", component_required: "You must select a Component for this bug.", description_required: "You must enter a Description for this bug.", group_required: "You must select at least one group for bugs in this product.", invalid_product_required: "The value of this field is not valid for this product.", short_desc_required: "You must enter a Summary for this bug.", version_required: "You must select a Version for this bug.", } , api_token: '' }; if (history && history.replaceState) { if(!document.location.href.match(/show_bug\.cgi/)) { history.replaceState( null, "1124987 – Fix static TLS usage in Fedora shared libraries.", "show_bug.cgi?id=1124987" ); document.title = "1124987 – Fix static TLS usage in Fedora shared libraries."; } if (document.location.href.match(/show_bug\.cgi\?.*list_id=/)) { var href = document.location.href; href = href.replace(/[\?&]+list_id=(\d+|cookie)/, ''); history.replaceState(null, "1124987 – Fix static TLS usage in Fedora shared libraries.", href); } } YAHOO.util.Event.onDOMReady(function() { initDirtyFieldTracking(); }); // --> </script> <script type="text/javascript" src="https://bugzilla.redhat.com/js/util.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/js/field.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/ExternalBugs/web/js/external_bugs.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/RedHat/web/alertify/alertify.min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/RedHat/web/js/redhat.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/RedHat/web/js/accessible-menu.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/SelectizeJS/web/js/standalone/selectize.min.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/SelectizeJS/web/js/selectize-plugin-a11y.js?1731976238"></script><script type="text/javascript" src="https://bugzilla.redhat.com/extensions/SelectizeJS/web/js/SelectizeJS.js?1731976238"></script> <link rel="search" type="application/opensearchdescription+xml" title="Red Hat Bugzilla" href="https://bugzilla.redhat.com//search_plugin.cgi"> <link rel="shortcut icon" href="https://bugzilla.redhat.com//extensions/RedHat/web/css/favicons/production.ico?v=0"> </head> <body class="bugzilla-redhat-com status_colours_pastel bz_bug bz_status_CLOSED bz_product_Fedora bz_component_calibre bz_bug_1124987 yui-skin-sam"> <div id="header" role="banner"><nav id="account_menu"> <ul> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_login_options"> <i class="fa fa-user"></i> Login </button> <ul id="submenu_login_options"><li id="mini_login_container"><ul id="saml2_container"> Log in using an SSO provider: <li id="saml2auth_login_Fedora Account System"> <a href="saml2_login.cgi?idp=Fedora%20Account%20System&amp;target=show_bug.cgi%3Fid%3D1124987" ><i class="fa fa-cogs" aria-hidden="true"></i>&nbsp;&nbsp;Fedora Account System</a> </li> <li id="saml2auth_login_Red Hat Associate"> <a href="saml2_login.cgi?idp=Red%20Hat%20Associate&amp;target=show_bug.cgi%3Fid%3D1124987" ><i class="fa fa-user-secret" aria-hidden="true"></i>&nbsp;&nbsp;Red Hat Associate</a> </li> <li id="saml2auth_login_Red Hat Customer"> <a href="saml2_login.cgi?idp=Red%20Hat%20Customer&amp;target=show_bug.cgi%3Fid%3D1124987" ><i class="fa fa-user" aria-hidden="true"></i>&nbsp;&nbsp;Red Hat Customer</a> </li> </ul> <li style="padding-left: 1em;"> Login using a Red Hat Bugzilla account <form action="show_bug.cgi?id=1124987" method="POST" class="mini_login " id="mini_login"> <input id="Bugzilla_login" required name="Bugzilla_login" class="bz_login" type="email" placeholder="Email Address" aria-label="Account Email Address"> <input class="bz_password" name="Bugzilla_password" type="password" id="Bugzilla_password" required placeholder="Password or pin+token" aria-label="Account Password or pin+token"> <input type="hidden" name="Bugzilla_login_token" value=""> <input type="submit" name="GoAheadAndLogIn" value="Login" id="log_in"> </form> </li> </li> <li id="forgot_container"> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_forgot_password"> <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>&nbsp;&nbsp;Forgot&nbsp;Password </button> <ul id="submenu_forgot_password"> <li style="padding-left: 2em;"> <form action="token.cgi" method="post" id="forgot_form" class="mini_forgot"> <!--label for="login">Email Address:</label--> <input name="loginname" size="20" id="login" required type="email" placeholder="Your Email Address" aria-label="Account Email Address"> <input id="forgot_button" value="Reset Password" type="submit"> <input type="hidden" name="a" value="reqpw"> <input type="hidden" id="token" name="token" value="1732744505-phmKFqO35jiHDSoU7qTGsL0fmoODsreI4oTfLiELUpc"> </form> </li> </ul> </li> <li> <a href="createaccount.cgi"><span><i class="fas fa-plus" aria-hidden="true"></i>&nbsp;&nbsp;Create an Account</span></a> </li> </ul> </li> </ul> </nav> <div id="titles"> <span id="title">Red Hat Bugzilla &ndash; Bug&nbsp;1124987</span> </div> <nav id="site_menu" aria-label="Site Menu" role="navigation"><ul> <li><a href="./">Home</a></li> <li><a href="enter_bug.cgi">New</a></li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_search">Search <i class="fas fa-search"></i></button> <ul id="submenu_search"> <li><a href="query.cgi?format=specific">Simple Search</a></li> <li><a href="query.cgi?format=advanced">Advanced Search</a></li> </ul> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_my_links">My Links</button> <ul id="submenu_my_links"> <li><a href="describecomponents.cgi">Browse</a></li> <li> <a href="request.cgi">Requests</a> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_reports">Reports</button> <ul id="submenu_reports"> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_current_state">Current State</button> <ul id="submenu_current_state"> <li id="report_search"> <a href="query.cgi">Search</a> </li> <li id="report_tabular"> <a href="query.cgi?format=report-table">Tabular reports</a> </li> <li id="report_graphical"> <a href="query.cgi?format=report-graph">Graphical reports</a> </li> <li id="report_duplicates"> <a href="duplicates.cgi">Duplicates</a> </li> </ul> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_other_reports">Other Reports</button> <ul id="submenu_other_reports"> <li> <a href="https://bugzilla.redhat.com/page.cgi?id=user_activity.html">User Changes</a> </li> </ul> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_plotly_reports">Plotly Reports</button> <ul id="submenu_plotly_reports"> <li> <a href="https://bugzilla.redhat.com/page.cgi?id=bug_status.html">Bug Status</a> </li> <li> <a href="https://bugzilla.redhat.com/page.cgi?id=bug_severity.html">Bug Severity</a> </li> <li> <a href="https://bugzilla.redhat.com/page.cgi?id=non_defaults.html">Non-Defaults</a> </li> </ul> </li> </ul> </li><li><a href="page.cgi?id=productdashboard.html">Product Dashboard</a></li> </ul> </li> <li> <button aria-expanded="false" aria-haspopup="true" aria-controls="submenu_help">Help</button> <ul id="submenu_help"><li><a href="docs/en/html/using/understanding.html" >Page Help!</a></li> <li><a href="page.cgi?id=bug-writing.html">Bug Writing Guidelines</a></li> <li><a href="page.cgi?id=whats-new.html">What's new</a></li> <li><a href="https://access.redhat.com/help/browsers">Browser Support Policy</a></li> <li><a href="page.cgi?id=release-notes.html">5.0.4.rh103 Release notes</a></li> <li><a href="page.cgi?id=faq.html">FAQ</a></li> <li><a href="docs/en/html/index.html">Guides index</a></li> <li><a href="docs/en/html/using/index.html">User guide</a></li> <li><a href="docs/en/html/integrating/api/Bugzilla/WebService/Bug.html">Web Services</a></li> <li><a href="page.cgi?id=redhat/contact.html" >Contact</a></li> <li><a href="page.cgi?id=terms-conditions.html" >Legal</a></li> </ul> </li> <li class="form"> <form action="buglist.cgi" method="get" onsubmit="if (this.quicksearch.value == '') { alert('Please enter one or more search terms first.'); return false; } return true;"> <input type="hidden" id="no_redirect_top" name="no_redirect" value="0"> <script type="text/javascript"> if (history && history.replaceState) { var no_redirect = document.getElementById("no_redirect_top"); no_redirect.value = 1; } </script> <input class="txt" type="text" id="quicksearch_top" name="quicksearch" aria-label="Quick Search input" title="Quick Search" value=""> <input class="btn" type="submit" value="Quick Search" aria-label="Run Quick Search" id="find_top"> </form> <a href="page.cgi?id=quicksearch.html" title="Quicksearch Help">[?]</a> </li> </ul> </nav> </div> <div id="bugzilla-body" role="main"> <noscript> <div id="no-js-message">This site requires JavaScript to be enabled to function correctly, please enable it.</div> </noscript> <ul class="related_actions"> <li><a href="show_bug.cgi?format=multiple&amp;id=1124987" title="Format For Printing"><i class="fa fa-print"></i></a></li> <li><a href="show_bug.cgi?ctype=xml&amp;id=1124987" title="Export as XML"><i class="far fa-file-excel"></i></a></li> <li><a href="enter_bug.cgi?cloned_bug_id=1124987" title="Clone This Bug"><i class="fa fa-clone"></i></a></li> <li> <a href="enter_bug.cgi?cloned_bug_id=1124987&lite=1" title="Copy is a lite weight clone that only copies the summary &amp; description"> <i class="far fa-clone"></i> </a> </li> <li> <a href="#c34" title="Last Comment"> <i class="fas fa-arrow-down" aria-hidden="true"></i> </a> </li><li> <a href="buglist.cgi?bug_id=1124987&amp;bug_id_type=anddependson&amp;format=tvp" title="TreeView+"> <i class="fa fa-tree"></i> </a> </li> </ul> <script type="text/javascript"> <!-- //--> </script> <form name="changeform" id="changeform" method="post" action="process_bug.cgi"> <input type="hidden" name="delta_ts" value="2015-05-04 15:05:41"> <input type="hidden" name="id" value="1124987"> <input type="hidden" name="token" value="1732744505-dwITa6rMNBsnHwcjFjDP20GzhqZ5cnBtckmpF5lIKdA"> <div class="bz_short_desc_container edit_form"> <a href="show_bug.cgi?id=1124987"><b>Bug&nbsp;1124987</b></a> <span id="summary_container" class="bz_default_hidden"> - <span id="short_desc_nonedit_display">Fix static TLS usage in Fedora shared libraries.</span> </span> <div id="summary_input"><span class="field_label " id="field_label_short_desc"> <a title="The bug summary is a short sentence which succinctly describes what the bug is about." class="field_help_link" href="page.cgi?id=fields.html#short_desc" >Summary:</a> </span>Fix static TLS usage in Fedora shared libraries. </div> </div> <script type="text/javascript"> hideEditableField('summary_container', 'summary_input', 'summary_edit_action', 'short_desc', 'Fix static TLS usage in Fedora shared libraries.' ); </script> <table class="edit_form"> <tr> <td id="bz_show_bug_column_1" class="bz_show_bug_column"> <table> <tr> <th class="field_label"> <a href="describekeywords.cgi">Keywords</a>: </th> <td> <div class="keywords_select"> <select id="keywords" name="keywords" disabled="disabled" multiple="multiple"> </select> </div> </td> </tr> <tr> <th class="field_label"> <a href="page.cgi?id=fields.html#bug_status">Status</a>: </th> <td id="bz_field_status"> <span id="static_bug_status">CLOSED ERRATA </span> </td> </tr> <tr><th class="field_label " id="field_label_alias"> <a title="A short, unique name assigned to a bug in order to assist with looking it up and referring to it in other places in Bugzilla." class="field_help_link" href="page.cgi?id=fields.html#alias" >Alias:</a> </th> <td> None </td> </tr> <tr> <th class="field_label " id="field_label_product"> <a title="Bugs are categorised into Products and Components. Select a Classification to narrow down this list." class="field_help_link" href="describecomponents.cgi" >Product:</a> </th> <td class="field_value " id="field_container_product" >Fedora </td> </tr> <tr class="bz_default_hidden"><th class="field_label " id="field_label_classification"> <a title="Bugs are categorised into Classifications, Products and Components. classifications is the top-level categorisation." class="field_help_link" href="page.cgi?id=fields.html#classification" >Classification:</a> </th> <td class="field_value " id="field_container_classification" >Fedora </td> </tr> <tr><th class="field_label " id="field_label_component"> <a title="Components are second-level categories; each belongs to a particular Product. Select a Product to narrow down this list." class="field_help_link" href="describecomponents.cgi?product=Fedora" >Component:</a> </th> <td> <input type="hidden" id="component" name="component" value="calibre">calibre <span class="show_others"> <a href="buglist.cgi?component=calibre&amp;product=Fedora" title="Show other bugs for this component"><i class="fas fa-th-list"></i></a> <a href="enter_bug.cgi?component=calibre&amp;product=Fedora&amp;version=21" title="Create a new bug for this component"><i class="fas fa-plus-circle"></i></a> </span> </td> </tr> <tr> <th id="bz_rh_sub_component_input_th" class="field_label bz_default_hidden"> <label for="rh_sub_component"> <a class="field_help_link" href="page.cgi?id=fields.html#rh_sub_components" title="The sub component of a specific component">Sub Component:</a> </label> </th> <td id="bz_rh_sub_component_input_td" class="bz_default_hidden"> <input type="hidden" name="defined_rh_sub_component" id="defined_rh_sub_component" value="0"> <select name="rh_sub_component" id="rh_sub_component" disabled="disabled" onchange="assign_to_default();" > <option value="">---</option> </select> <span class="show_others"> <a href="buglist.cgi?component=calibre&amp;product=Fedora" title="Show other bugs for this sub-component"><i class="fas fa-th-list"></i></a> <a href="enter_bug.cgi?component=calibre&amp;product=Fedora&amp;version=21&amp;sub_component=" title="Create a new bug for this sub-component"><i class="fas fa-plus-circle"></i></a> </span> </td> </tr> <tr><th class="field_label " id="field_label_version"> <a title="The version field defines the version of the software the bug was found in." class="field_help_link" href="page.cgi?id=fields.html#version" >Version:</a> </th> <td> <span id="version">21 </span></td> </tr> <tr><th class="field_label " id="field_label_rep_platform"> <a title="The hardware platform the bug was observed on. Note: When searching, selecting the option &quot;All&quot; only finds bugs whose value for this field is literally the word &quot;All&quot;." class="field_help_link" href="page.cgi?id=fields.html#rep_platform" >Hardware:</a> </th> <td class="field_value">x86_64 </td> </tr> <tr><th class="field_label " id="field_label_op_sys"> <a title="The operating system the bug was observed on. Note: When searching, selecting the option &quot;All&quot; only finds bugs whose value for this field is literally the word &quot;All&quot;." class="field_help_link" href="page.cgi?id=fields.html#op_sys" >OS:</a> </th> <td class="field_value"> Unspecified </td> </tr> <tr> <th class="field_label"> <label accesskey="i"> <a href="page.cgi?id=fields.html#priority">Priority:</a></label> </th> <td>unspecified </td> </tr> <tr> <th class="field_label"> <label ><a href="page.cgi?id=fields.html#bug_severity">Severity:</a> </label> </th> <td> unspecified </td> </tr> <tr><th class="field_label " id="field_label_target_milestone"> <a title="The Target Milestone field is used to define when the engineer the bug is assigned to expects to fix it." class="field_help_link" href="page.cgi?id=fields.html#target_milestone" >Target Milestone:</a> </th><td> <span id="target_milestone">--- </span></td> </tr> <tr><th class="field_label " id="field_label_assigned_to"> <a title="The person in charge of resolving the bug." class="field_help_link" href="page.cgi?id=fields.html#assigned_to" >Assignee:</a> </th> <td><span class="vcard "><span class="fn">Kevin Fenzi</span> </span> </td> </tr> <tr><th class="field_label " id="field_label_qa_contact"> <a title="The person responsible for confirming this bug if it is unconfirmed, and for verifying the fix once the bug has been resolved." class="field_help_link" href="page.cgi?id=fields.html#qa_contact" >QA Contact:</a> </th> <td><span class="vcard "><span class="fn">Fedora Extras Quality Assurance</span> </span> </td> </tr> <tr><th class="field_label " id="field_label_docs_contact"> <label for="docs_contact" accesskey="q"> <a title="The person responsible for documenting once the bug has been resolved." class="field_help_link" href="page.cgi?id=fields.html#docs_contact" >Docs Contact:</a> </label> </th> <td><span class="vcard bz_inactive"> </span> </td> </tr> <script type="text/javascript"> assignToDefaultOnChange(['product', 'component'], 'kevin\x40scrye.com', 'extras-qa\x40fedoraproject.org', ''); </script> <tr><th class="field_label " id="field_label_bug_file_loc"> <a title="Bugs can have a URL associated with them - for example, a pointer to a web site where the problem is seen." class="field_help_link" href="page.cgi?id=fields.html#bug_file_loc" >URL:</a> </th> <td> <span id="bz_url_input_area"> <a href="https://retrace.fedoraproject.org/faf/reports/bthash/80cdae8023c157fc95c784b4143aeb0bd0f10e0c" rel="noreferrer"><span title="https://retrace.fedoraproject.org/faf/reports/bthash/80cdae8023c157fc95c784b4143aeb0bd0f10e0c">https://retrace.fedoraproject.org/faf... </span></a> </span> </td> </tr> <tr><th class="field_label " id="field_label_status_whiteboard"> <a title="Each bug has a free-form single line text entry box for adding tags and status information." class="field_help_link" href="page.cgi?id=fields.html#status_whiteboard" >Whiteboard:</a> </th><td> <span title="abrt_hash:d0494b0cf2c91b36c2d2240a1547f94e8a3f4608">abrt_hash:d0494b0cf2c91b36c2d2240a154... </span> </td> </tr> <tr> <th class="field_label"> <label>Duplicates (1)</label>: </th> <td class="field_value"> <span id="duplicates"><a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED DUPLICATE - [VLC] dlopen: cannot load any more object with static TLS" href="show_bug.cgi?id=1133843">1133843</a> </span> (<a href="buglist.cgi?bug_id=1133843">view as bug list</a>) </td> </tr> <tr><th class="field_label " id="field_label_dependson"> <a title="The bugs listed here must be resolved before this bug can be resolved." class="field_help_link" href="page.cgi?id=fields.html#dependson" >Depends On:</a> </th> <td> <span id="dependson_input_area"> </span> </td> </tr> <tr><th class="field_label " id="field_label_blocked"> <a title="This bug must be resolved before the bugs listed in this field can be resolved." class="field_help_link" href="page.cgi?id=fields.html#blocked" >Blocks:</a> </th> <td> <span id="blocked_input_area"> </span> <a class="bz_bug_link bz_secure " title="" href="show_bug.cgi?id=1218319">1218319</a> </td> </tr> <tr> <th class="field_label">TreeView+</th> <td> <a href="buglist.cgi?bug_id=1124987&amp;bug_id_type=anddependson&amp;format=tvp"> depends on</a> / <a href="buglist.cgi?bug_id=1124987&amp;bug_id_type=andblocked&amp;format=tvp&amp;tvp_dir=blocked"> blocked</a> </td> <td></td> </tr> </table> </td> <td> <div class="bz_column_spacer">&nbsp;</div> </td> <td id="bz_show_bug_column_2" class="bz_show_bug_column"> <table> <tr> <th class="field_label"> <a href="page.cgi?id=fields.html#reporter">Reported:</a> </th> <td>2014-07-30 19:22 UTC by <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </td> </tr> <tr> <th class="field_label"> <a href="page.cgi?id=fields.html#modified">Modified:</a> </th> <td>2015-05-04 15:05 UTC (<a href="show_activity.cgi?id=1124987">History</a>) </td> </tr> <tr> <th class="field_label"> <label accesskey="a"> <a href="page.cgi?id=fields.html#cclist">CC List:</a> </label> </th> <td>16 users <span id="cc_edit_area_showhide_container" class="bz_default_hidden"> (<a href="#" id="cc_edit_area_showhide">show</a>) </span> <div id="cc_edit_area"> <br> <select id="cc" multiple="multiple" size="5" > <option value="agrimm">agrimm</option> <option value="arekm">arekm</option> <option value="chkr">chkr</option> <option value="codonell">codonell</option> <option value="frankly3d">frankly3d</option> <option value="hdegoede">hdegoede</option> <option value="kevin">kevin</option> <option value="mikko.tiihonen">mikko.tiihonen</option> <option value="nushio">nushio</option> <option value="pschindl">pschindl</option> <option value="rdieter">rdieter</option> <option value="sanjay.ankur">sanjay.ankur</option> <option value="tim">tim</option> <option value="walters">walters</option> <option value="yaneti">yaneti</option> <option value="zbyszek">zbyszek</option> </select> </div> <script type="text/javascript"> hideEditableField( 'cc_edit_area_showhide_container', 'cc_edit_area', 'cc_edit_area_showhide', '', ''); </script> </td> </tr> <tr> <th class="field_label " id="field_label_cf_fixed_in"> <a title="The full package version. PGM uses to check if brew ..." >Fixed In Version:</a> </th> <td class="field_value " id="field_container_cf_fixed_in" colspan="2">glibc-2.19.90-36.fc21 </td> </tr> <tr> <th class="field_label " id="field_label_cf_doc_type"> <a title="Click the information icon to the right to see the description" >Doc Type:</a> <i class="fas fa-info-circle pop-text" onclick="alertify.alert('Doc Type', BB_FIELDS['cf_doc_type'].long_desc)" title="Click to see full description"></i> </th> <td class="field_value " id="field_container_cf_doc_type" colspan="2">Bug Fix <span id="cf_doc_warn"></span></td> </tr> <tr> <th class="field_label " id="field_label_cf_release_notes"> <a title="Click the information icon to the right to see the description" >Doc Text:</a> <i class="fas fa-info-circle pop-text" onclick="alertify.alert('Doc Text', BB_FIELDS['cf_release_notes'].long_desc)" title="Click to see full description"></i> </th> <td class="field_value " id="field_container_cf_release_notes" colspan="2"> <div class="uneditable_textarea"></div> </td> </tr> <tr> <th class="field_label " id="field_label_cf_clone_of"> <a title="The bug listed here was the bug cloned to create thi..." >Clone Of:</a> </th> <td class="field_value " id="field_container_cf_clone_of" colspan="2"> </td> </tr> <tr> <th class="field_label"> <label for="clones">Clones</label>: </th> <td class="field_value" colspan="2"> <span id="clones"><a class="bz_bug_link bz_secure " title="" href="show_bug.cgi?id=1218319">1218319</a> </span> (<a href="buglist.cgi?bug_id=1218319">view as bug list</a>)</td> </tr> <tr> <th class="field_label " id="field_label_cf_environment"> <a title="This field is used for unformatted text that helps t..." >Environment:</a> </th> <td class="field_value " id="field_container_cf_environment" colspan="2"> <div class="uneditable_textarea"></div> </td> </tr> <tr> <th class="field_label " id="field_label_cf_last_closed"> <a title="When this bug was last marked as closed. Used for st..." >Last Closed:</a> </th> <td class="field_value " id="field_container_cf_last_closed" colspan="2">2014-09-11 02:44:15 UTC </td> </tr> <tr> <th class="field_label " id="field_label_cf_type"> <a title="Keywords in a custom field" >Type:</a> </th> <td class="field_value " id="field_container_cf_type" colspan="2">--- </td> </tr> <tr> <th class="field_label " id="field_label_cf_embargoed"> <a title="This issue is currently under an embargo." >Embargoed:</a> </th> <td class="field_value " id="field_container_cf_embargoed" colspan="2"> </td> </tr> <tr> <th class="field_label"> <label for="dependent_products"> <a class="field_help_link" href="page.cgi?id=fields.html#dependent_products" title="Other Products that are affected by this bug." > Dependent Products: </a> </label> </th> <td> <select id="dependent_products" name="dependent_products" multiple disabled="disabled" > <option value="616" >Ember-CSI</option> <option value="171" >Red Hat Enterprise Virtualization Manager</option> <option value="297" >Red Hat OpenStack</option> <option value="615" >Service Telemetry Framework</option> </select> <script type="text/javascript"> $(document).ready(function () { init_products({id : "dependent_products", noajax: 1}); }); </script> </td> </tr> </table> </td> </tr> <tr> <td colspan="3"> <hr id="bz_top_half_spacer"> </td> </tr> </table> <table id="bz_big_form_parts"> <tr> <td> <script type="text/javascript"> <!-- function toggle_display(link) { var table = document.getElementById("attachment_table"); var view_all = document.getElementById("view_all"); var hide_obsolete_url_parameter = "&hide_obsolete=1"; // Store current height for scrolling later var originalHeight = table.offsetHeight; var rows = YAHOO.util.Dom.getElementsByClassName( 'bz_tr_obsolete', 'tr', table); for (var i = 0; i < rows.length; i++) { bz_toggleClass(rows[i], 'bz_default_hidden'); } if (YAHOO.util.Dom.hasClass(rows[0], 'bz_default_hidden')) { link.innerHTML = "Show Obsolete"; view_all.href = view_all.href + hide_obsolete_url_parameter } else { link.innerHTML = "Hide Obsolete"; view_all.href = view_all.href.replace(hide_obsolete_url_parameter,""); } var newHeight = table.offsetHeight; // This scrolling makes the window appear to not move at all. window.scrollBy(0, newHeight - originalHeight); return false; } //--> </script> <br> <table id="attachment_table"> <tr id="a0"> <th align="left"> Attachments </th> <th colspan="2" align="right"> <a href="page.cgi?id=terms-conditions.html">(Terms of Use)</a> </th> </tr> <tr id="a1" class="bz_contenttype_text_plain"> <td> <a href="attachment.cgi?id=922690" title="View the content of the attachment"> <b>File: backtrace</b></a> <span class="bz_attach_extra_info"> (7.89 KB, text/plain) <br> <a href="#attach_922690" title="Go to the comment associated with the attachment">2014-07-30 19:22 UTC</a>, <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=922690&amp;action=edit">Details</a> </td> </tr> <tr id="a2" class="bz_contenttype_text_plain"> <td> <a href="attachment.cgi?id=922691" title="View the content of the attachment"> <b>File: environ</b></a> <span class="bz_attach_extra_info"> (1.72 KB, text/plain) <br> <a href="#attach_922691" title="Go to the comment associated with the attachment">2014-07-30 19:22 UTC</a>, <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=922691&amp;action=edit">Details</a> </td> </tr> <tr id="a3" class="bz_contenttype_application_x-xz"> <td> <a href="attachment.cgi?id=925164" title="View the content of the attachment"> <b>LD_DEBUG log from crash (requested by carlos)</b></a> <span class="bz_attach_extra_info"> (4.28 MB, application/x-xz) <br> <a href="#attach_925164" title="Go to the comment associated with the attachment">2014-08-08 12:41 UTC</a>, <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=925164&amp;action=edit">Details</a> </td> </tr> <tr id="a4" class="bz_contenttype_text_plain bz_tr_obsolete bz_default_hidden"> <td> <a href="attachment.cgi?id=928076" title="View the content of the attachment"> <b><span class="bz_obsolete">readelf -a -W of libraries that calibre opens</span></b></a> <span class="bz_attach_extra_info"> (1.33 MB, text/plain) <br> <a href="#attach_928076" title="Go to the comment associated with the attachment">2014-08-18 21:50 UTC</a>, <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=928076&amp;action=edit">Details</a> </td> </tr> <tr id="a5" class="bz_contenttype_application_x-gzip"> <td> <a href="attachment.cgi?id=928078" title="View the content of the attachment"> <b>readelf -a -W of libraries that calibre opens</b></a> <span class="bz_attach_extra_info"> (6.25 MB, application/x-gzip) <br> <a href="#attach_928078" title="Go to the comment associated with the attachment">2014-08-18 21:56 UTC</a>, <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=928078&amp;action=edit">Details</a> </td> </tr> <tr id="a6" class="bz_contenttype_text_plain bz_patch"> <td> <a href="attachment.cgi?id=985507" title="View the content of the attachment"> <b>Patch for F-20 package</b></a> <span class="bz_attach_extra_info"> (3.54 KB, patch) <br> <a href="#attach_985507" title="Go to the comment associated with the attachment">2015-01-29 10:20 UTC</a>, <span class="vcard "><span class="fn">Tim Niemueller</span> </span> </span> </td> <td class="bz_attach_flags"> <i>no flags</i> </td> <td> <a href="attachment.cgi?id=985507&amp;action=edit">Details</a> | <a href="attachment.cgi?id=985507&amp;action=diff">Diff</a> </td> </tr> <tr class="bz_attach_footer"> <td colspan="3"> <span class="bz_attach_view_hide"> <a href="#a0" onclick="return toggle_display(this);">Show Obsolete</a> (1) <a id="view_all" href="attachment.cgi?bugid=1124987&amp;action=viewall&amp;hide_obsolete=1">View All</a> </span> </td> </tr> </table> <br> <script> YAHOO.ExternalBugs.sUrlYUI = 'https://bugzilla.redhat.com/jsonrpc.cgi'; YAHOO.ExternalBugs.sUrlRPC = 'https://bugzilla.redhat.com/xmlrpc.cgi'; YAHOO.ExternalBugs.extRefreshList = []; function _extbz_errorFor(field, error_text) { var new_node = document.createElement('div'); YAHOO.util.Dom.addClass(new_node, 'validation_error_text'); new_node.innerHTML = error_text; YAHOO.util.Dom.insertAfter(new_node, field); YAHOO.util.Dom.addClass(field, 'validation_error_field'); return new_node; } function check_external_bugs (f) { var focus_me; var external_bugs = YAHOO.util.Dom.getElementsByClassName( 'external_bug_id', null, f); for (var i = 0; i < external_bugs.length; i++) { var bug_id_key = external_bugs[i].name; var bug_type_key = 'external_' + bug_id_key.substr(13); if($('#' + bug_id_key).length > 0) { var bug_id = document.getElementById(bug_id_key).value; var bug_type = document.getElementById(bug_type_key).value; if ((bug_type == '' || bug_type == '0') && bug_id != '') { focus_me = _extbz_errorFor( document.getElementById(bug_type_key), 'You specified the external tracker id, but not the type' ); } else if (bug_type != '' && bug_type != '0' && bug_id == '') { focus_me = _extbz_errorFor( external_bugs[i], 'You specified the external tracker type, but not the id' ); } else if (bug_type != '' && bug_id != '') { } } } return focus_me; } var bz_no_validate_enter_bug = false; function validateChangeBug(changeform) { // This is for the "bookmarkable templates" button. if (bz_no_validate_enter_bug) { // Set it back to false for people who hit the "back" button bz_no_validate_enter_bug = false; return true; } var current_errors = YAHOO.util.Dom.getElementsByClassName( 'validation_error_text', null, changeform); for (var i = 0; i < current_errors.length; i++) { current_errors[i].parentNode.removeChild(current_errors[i]); } var current_error_fields = YAHOO.util.Dom.getElementsByClassName( 'validation_error_field', null, changeform); for (var i = 0; i < current_error_fields.length; i++) { var field = current_error_fields[i]; YAHOO.util.Dom.removeClass(field, 'validation_error_field'); } var focus_me; // REDHAT EXTENSION 1000743 focus_me = check_external_bugs(changeform); if (focus_me) { focus_me.scrollIntoView(false); return false; } return true; } changeform.onsubmit = function() { return validateChangeBug(changeform)}; </script> <br> <table id="external_bugs_table" cellspacing="0" cellpadding="4"> <caption name="et0" id="et0">Links</caption> <tr> <th>System</th> <th>ID</th> <th>Private</th> <th>Priority</th> <th>Status</th> <th>Summary</th> <th>Last Updated</th> </tr> <tr id="ext_row_902544" > <td>Red Hat Bugzilla </td> <td><a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED DUPLICATE - [VLC] dlopen: cannot load any more object with static TLS" href="show_bug.cgi?id=1133843">1133843</a> </td> <td> <span id="ext_is_private_902544">0 </span> </td> <td> <span id="ext_priority_902544">unspecified </span> </td> <td> <span id="ext_status_902544">CLOSED </span> </td> <td> <span id="ext_description_902544" title="[VLC] dlopen: cannot load any more object with static TLS">[VLC] dlopen: cannot load any more object with static TLS </span> </td> <td> <span id="ext_last_updated_902544">2021-02-22 00:41:40 UTC </span> </td> </tr> </table> <br> <div> <span class="field_label">Internal Links:</span> <a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED DUPLICATE - [VLC] dlopen: cannot load any more object with static TLS" href="show_bug.cgi?id=1133843">1133843</a> </div> <br> </td> <td class="groups"> </td> </tr></table> <div id="comments"><script type="text/javascript"> <!-- /* Adds the reply text to the 'comment' textarea */ function replyToComment(id, real_id, name) { var prefix = "(In reply to " + name + " from comment #" + id + ")\n"; var replytext = ""; /* pre id="comment_name_N" */ var text_elem = document.getElementById('comment_text_'+id); var text = getText(text_elem); replytext = prefix + wrapReplyText(text); /* <textarea id="comment"> */ var textarea = document.getElementById('comment'); if (textarea.value != replytext) { textarea.value += replytext; } textarea.focus(); } //--> </script> <!-- This auto-sizes the comments and positions the collapse/expand links to the right. --> <table class="bz_comment_table"> <tr> <td> <div id="c0" class="bz_comment bz_first_comment " > <div class="bz_first_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c0">Description</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-07-30 19:22:15 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_0" >Description of problem: Crashes on startup in current F21. Version-Release number of selected component: calibre-1.46.0-1.fc21 Additional info: reporter: libreport-2.2.3 cmdline: python2 /usr/bin/calibre --detach executable: /usr/bin/calibre kernel: 3.16.0-0.rc6.git2.2.fc22.x86_64 runlevel: N 5 type: Python uid: 1001 Truncated backtrace: #1 &lt;module&gt; in /usr/lib64/calibre/calibre/utils/magick/__init__.py:14 #2 &lt;module&gt; in /usr/lib64/calibre/calibre/db/backend.py:31 #3 &lt;module&gt; in /usr/lib64/calibre/calibre/db/legacy.py:17 #4 &lt;module&gt; in /usr/lib64/calibre/calibre/gui2/ui.py:26 #5 run_gui in /usr/lib64/calibre/calibre/gui2/main.py:320 #6 main in /usr/lib64/calibre/calibre/gui2/main.py:458 #7 &lt;module&gt; in /usr/bin/calibre:20 </pre> </div> <div id="c1" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c1">Comment 1</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-07-30 19:22:18 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_1" >Created <span class=""><a href="attachment.cgi?id=922690" name="attach_922690" title="File: backtrace">attachment 922690</a> <a href="attachment.cgi?id=922690&amp;action=edit" title="File: backtrace">[details]</a></span> File: backtrace </pre> </div> <div id="c2" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c2">Comment 2</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-07-30 19:22:19 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_2" >Created <span class=""><a href="attachment.cgi?id=922691" name="attach_922691" title="File: environ">attachment 922691</a> <a href="attachment.cgi?id=922691&amp;action=edit" title="File: environ">[details]</a></span> File: environ </pre> </div> <div id="c3" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c3">Comment 3</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Colin Walters</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-06 13:17:25 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_3" >I suspect this is a glibc change. We're seeing the same error message in an Anaconda environment from trying to dlopen(libgtk.so). </pre> </div> <div id="c4" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c4">Comment 4</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-06 13:20:12 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_4" >So, let's CC the glibc maintainer (at least, the person to whom glibc bugs appear currently to be assigned). </pre> </div> <div id="c5" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c5">Comment 5</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-08 12:41:54 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_5" >Created <span class=""><a href="attachment.cgi?id=925164" name="attach_925164" title="LD_DEBUG log from crash (requested by carlos)">attachment 925164</a> <a href="attachment.cgi?id=925164&amp;action=edit" title="LD_DEBUG log from crash (requested by carlos)">[details]</a></span> LD_DEBUG log from crash (requested by carlos) </pre> </div> <div id="c6" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c6">Comment 6</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-08 12:51:31 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_6" >Please get the list of all shared libraries loaded by python then run `readelf -a -W` against all of them and dump that to a file. I want to know which if the libraries is using static TLS. The error you are seeing is not a bug in glibc. The dynamic loader has a fixed amount of &quot;super fast&quot; static TLS for use by core libraries which are always loaded and can use this static TLS. Normal libraries should not be using static TLS and you should not be running out of static TLS, those loaded libraries should be using dynamic TLS which has no limits (not quite as fast as static TLS but still fast). </pre> </div> <div id="c7" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c7">Comment 7</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Colin Walters</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-08 13:30:38 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_7" >This is a good post on the issue: <a href="http://stackoverflow.com/questions/19268293/matlab-error-cannot-open-with-static-tls">http://stackoverflow.com/questions/19268293/matlab-error-cannot-open-with-static-tls</a> </pre> </div> <div id="c8" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c8">Comment 8</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Kevin Fenzi</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-08 13:32:52 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_8" >&quot;Please get the list of all shared libraries loaded by python then run `readelf -a -W` against all of them and dump that to a file.&quot; Is there some easy way to get this list without parsing the strace output? </pre> </div> <div id="c9" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c9">Comment 9</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Adam Williamson</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-08 19:26:34 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_9" >I thought it might be in the abrt data, but I don't see it in there at least in an obvious way. I can do the parsing, I just didn't want to embarrass myself doing it in my monkey way in front of carlos :P when I have some privacy to pore over the 'cut' manpages without anyone seeing, I'll get it done... </pre> </div> <div id="c10" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c10">Comment 10</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-09 07:20:38 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_10" >(In reply to Adam Williamson (Red Hat) from <a href="show_bug.cgi?id=1124987#c9">comment #9</a>) <span class="quote">&gt; I thought it might be in the abrt data, but I don't see it in there at least &gt; in an obvious way. I can do the parsing, I just didn't want to embarrass &gt; myself doing it in my monkey way in front of carlos :P when I have some &gt; privacy to pore over the 'cut' manpages without anyone seeing, I'll get it &gt; done...</span > The abrt data should have a loaded library list. For example /proc/self/maps should have been dumped and provided? That will contain the full list of DSOs. </pre> </div> <div id="c11" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c11">Comment 11</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Petr Schindler</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-13 06:01:33 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_11" >Another user experienced a similar problem: During the first start I left the default values and clicked on next button then application froze. Every other start of application ends with traceback. reporter: libreport-2.2.3 cmdline: python2 /usr/bin/calibre --detach executable: /usr/bin/calibre kernel: 3.16.0-1.fc21.x86_64 package: calibre-1.46.0-3.fc21 reason: __init__.py:14:&lt;module&gt;:RuntimeError: Failed to load ImageMagick: dlopen: cannot load any more object with static TLS runlevel: N 5 type: Python uid: 1000 </pre> </div> <div id="c12" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c12">Comment 12</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-18 21:50:14 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_12" >Created <span class="bz_obsolete"><a href="attachment.cgi?id=928076" name="attach_928076" title="readelf -a -W of libraries that calibre opens">attachment 928076</a> <a href="attachment.cgi?id=928076&amp;action=edit" title="readelf -a -W of libraries that calibre opens">[details]</a></span> readelf -a -W of libraries that calibre opens strace -o /tmp/strace -f calibre fgrep '.so&quot;' /tmp/strace | grep ' open(' | grep -v ENOENT | cut -d'&quot;' -f2 | sort -u &gt; /tmp/strace.so.list.txt for i in $(cat /tmp/strace.so.list.txt) ; do echo &quot;readelf -a -W $i&quot; &gt;&gt; /tmp/readelf.txt; readelf -a -W $i &gt;&gt; /tmp/readelf.txt; done </pre> </div> <div id="c13" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c13">Comment 13</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-18 21:56:02 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_13" >Created <span class=""><a href="attachment.cgi?id=928078" name="attach_928078" title="readelf -a -W of libraries that calibre opens">attachment 928078</a> <a href="attachment.cgi?id=928078&amp;action=edit" title="readelf -a -W of libraries that calibre opens">[details]</a></span> readelf -a -W of libraries that calibre opens Again with missing libraries added (sorry for the spam): strace -o /tmp/strace -f calibre fgrep '.so' /tmp/strace | grep ' open(' | grep -v ENOENT | cut -d'&quot;' -f2 | sort -u &gt; /tmp/strace.so.list.txt for i in $(cat /tmp/strace.so.list.txt) ; do echo &quot;readelf -a -W $i&quot; &gt;&gt; /tmp/readelf.txt; readelf -a -W $i &gt;&gt; /tmp/readelf.txt; done </pre> </div> <div id="c14" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c14">Comment 14</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-19 21:00:56 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_14" >cat readelf.txt | egrep 'readelf| TLS ' | grep -v ' 0 TLS ' | grep TLS -B1 384 /lib64/libpixman-1.so.0 272 /lib64/libc.so.6 224 /lib64/libselinux.so.1 108 /lib64/libgomp.so.1 78 /lib64/libuuid.so.1 56 /lib64/libsystemd.so.0 48 /lib64/libstdc++.so.6 32 /lib64/libglapi.so.0 25 /lib64/libcom_err.so.2 8 /lib64/libasound.so.2 8 /lib64/libdw.so.1 8 /lib64/libEGL.so.1 8 /lib64/libGL.so.1 8 /lib64/libQtCore.so.4 4 /lib64/libelf.so.1 = 1271 bytes (is there some additional rounding done by linker?) After some googling I found out that we need -d flag to readelf to find which modules have static tls. Results are: cat readelf.txt | egrep 'readelf|STATIC_TLS' | grep TLS -B1 | grep readelf | cut -d/ -f2- 272 /lib64/libc.so.6 108 /lib64/libgomp.so.1 32 /lib64/libglapi.so.0 8 /lib64/libEGL.so.1 8 /lib64/libGL.so.1 0 /lib64/libcrypt.so.1 0 /lib64/libm.so.6 0 /lib64/libnsl.so.1 0 /lib64/libnss_files.so.2 0 /lib64/libpthread.so.0 0 /lib64/libresolv.so.2 0 /lib64/librt.so.1 0 /lib64/libutil.so.1 The 0 byte STATIC_TLS usage .so files have references to glibc variables such as so I did not count them. 0 TLS GLOBAL DEFAULT UND errno&#64;GLIBC_PRIVATE (4) If I googled right the .so libraries tagged STATIC_TLS fail to load if their TLS section does not fit into the static section. Others prefer static TLS (and thus use it even if not tagged static). The actual .so load order (for libraries with TLS section) is: /lib64/libc.so.6 /lib64/libcom_err.so.2 /lib64/libselinux.so.1 /lib64/libstdc++.so.6 /lib64/libQtCore.so.4 /lib64/libuuid.so.1 /lib64/libasound.so.2 /lib64/libGL.so.1 /lib64/libglapi.so.0 /lib64/libsystemd.so.0 /lib64/libdw.so.1 /lib64/libelf.so.1 /lib64/libpixman-1.so.0 /lib64/libEGL.so.1 /lib64/libgomp.so.1 Looking at the above lists my conclusion is that libgomp.so is the library that fails to load (the python tries to load libMagickCore-6.Q16.so.2, which depends on libgomp). But the libselinux and libpixman have already managed to store their large TLS sections into the static block. Possible solutions: 1) make the calibre python somehow not load libselinux (could such switch be added to python?) 2) make the calibre load the libgomp/libMagicCore earlier, before libpixman (most likely libselinux is loaded so early that it cannot be avoided) 3) add a new flag RTLD_NO_AUTOMATIC_STATIC_TLS for dlopen function to _not_ use static TLS for libraries unless they request it with STATIC_TLS. And then make python load libraries with the new flag 4) recompile the fedora to have larger static TLS section (the glibc seems to define TLS_STATIC_SURPLUS as 64+DL_NNS*100, where DL_NNS is either 1 or 16) </pre> </div> <div id="c15" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c15">Comment 15</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-20 04:01:59 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_15" >(In reply to Mikko Tiihonen from <a href="show_bug.cgi?id=1124987#c14">comment #14</a>) <span class="quote">&gt; cat readelf.txt | egrep 'readelf|STATIC_TLS' | grep TLS -B1 | grep readelf | &gt; cut -d/ -f2- &gt; 272 /lib64/libc.so.6 &gt; 108 /lib64/libgomp.so.1 &gt; 32 /lib64/libglapi.so.0 &gt; 8 /lib64/libEGL.so.1 &gt; 8 /lib64/libGL.so.1 &gt; 0 /lib64/libcrypt.so.1 &gt; 0 /lib64/libm.so.6 &gt; 0 /lib64/libnsl.so.1 &gt; 0 /lib64/libnss_files.so.2 &gt; 0 /lib64/libpthread.so.0 &gt; 0 /lib64/libresolv.so.2 &gt; 0 /lib64/librt.so.1 &gt; 0 /lib64/libutil.so.1</span > That many libraries should not overflow the reserved static TLS slots in the DTV. That is only 13 slots. We have 14 surplus slots. The original error is: &quot;RuntimeError: Failed to load ImageMagick: dlopen: cannot load any more object with static TLS&quot; Which indicates overflow of the slots not size of the allocated static TLS block itself. For the record DL_NNS should be 16, so we should hvae 102,400 bytes of static surplus storage. <span class="quote">&gt; The 0 byte STATIC_TLS usage .so files have references to glibc variables &gt; such as so I did not count them. &gt; 0 TLS GLOBAL DEFAULT UND errno&#64;GLIBC_PRIVATE (4)</span > These are references to static TLS varaibles in other modules e.g. libc.so.6, and because of those references the entire access type for the module is adjusted to be static TLS. Their size doesn't matter for now. <span class="quote">&gt; If I googled right the .so libraries tagged STATIC_TLS fail to load if their &gt; TLS section does not fit into the static section. Others prefer static TLS &gt; (and thus use it even if not tagged static).</span > Libraries don't prefer static TLS, they must be compiled for it. No shared libraries should be built with static TLS. I'm going to make it my quest to ban anything but the implementation from using static TLS in libraries because it leads to unmaintainable chaos at the distribution level :-( Maybe a few key libraries might be allowed... <span class="quote">&gt; The actual .so load order (for libraries with TLS section) is: &gt; /lib64/libc.so.6 &gt; /lib64/libcom_err.so.2 &gt; /lib64/libselinux.so.1 &gt; /lib64/libstdc++.so.6 &gt; /lib64/libQtCore.so.4 &gt; /lib64/libuuid.so.1 &gt; /lib64/libasound.so.2 &gt; /lib64/libGL.so.1 &gt; /lib64/libglapi.so.0 &gt; /lib64/libsystemd.so.0 &gt; /lib64/libdw.so.1 &gt; /lib64/libelf.so.1 &gt; /lib64/libpixman-1.so.0 &gt; /lib64/libEGL.so.1 &gt; /lib64/libgomp.so.1 &gt; &gt; Looking at the above lists my conclusion is that libgomp.so is the library &gt; that fails to load (the python tries to load libMagickCore-6.Q16.so.2, which &gt; depends on libgomp). But the libselinux and libpixman have already managed &gt; to store their large TLS sections into the static block.</span > Neither libselinux nor libpixman have static TLS AFAIK. How did you determine they did? <span class="quote">&gt; Possible solutions: &gt; 1) make the calibre python somehow not load libselinux (could such switch be &gt; added to python?)</span > That's not a solution since libselinux doesn't use static TLS. <span class="quote">&gt; 2) make the calibre load the libgomp/libMagicCore earlier, before libpixman &gt; (most likely libselinux is loaded so early that it cannot be avoided)</span > Not an option. <span class="quote">&gt; 3) add a new flag RTLD_NO_AUTOMATIC_STATIC_TLS for dlopen function to _not_ &gt; use static TLS for libraries unless they request it with STATIC_TLS. And &gt; then make python load libraries with the new flag</span > You are misunderstanding how static TLS works. The compiler is either told to use static TLS in which case the DSOs generated code *depends* upon it, and the DSO is marked with the STATIC_TLS dynamic section flag. Or The compiler is told not to use static TLS (the default) in which case the DSOs generated code uses a mode that allows it to be loaded fully dynamically. There is no way to undo static TLS requirements without recompiling the DSO. <span class="quote">&gt; 4) recompile the fedora to have larger static TLS section (the glibc seems &gt; to define TLS_STATIC_SURPLUS as 64+DL_NNS*100, where DL_NNS is either 1 or &gt; 16)</span > Users will continue to build more libraries with static tls until you run out of room. I think we can increase DTV_SURPLUS and TLS_STATIC_SURPLUS slightly, but we need to better understand which libraries are using it and get them to stop or figure out why they need it. From this list: <span class="quote">&gt; 272 /lib64/libc.so.6</span > - OK. May use STATIC_TLS, it's part of the implementation. <span class="quote">&gt; 108 /lib64/libgomp.so.1</span > - OK. May use STATIC_TLS, it's part of the implementation. Language runtime support for gomp shared across all programs. <span class="quote">&gt; 32 /lib64/libglapi.so.0 &gt; 8 /lib64/libEGL.so.1 &gt; 8 /lib64/libGL.so.1</span > - They should not use static TLS. e.g. [carlos&#64;koi mesa-c40d7d6d948912a4d51cbf8f0854cf2ebe916636]$ grep -r 'initial-exec' * docs/dispatch.html: __attribute__((tls_model(&quot;initial-exec&quot;))); src/glx/glxcurrent.c:__thread void *__glX_tls_Context __attribute__ ((tls_model(&quot;initial-exec&quot;))) src/glx/glxclient.h: __attribute__ ((tls_model(&quot;initial-exec&quot;))); src/egl/main/eglcurrent.c: __attribute__ ((tls_model(&quot;initial-exec&quot;))); src/mesa/drivers/dri/common/dri_test.c: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mesa/drivers/dri/common/dri_test.c: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mapi/u_current.c: __attribute__((tls_model(&quot;initial-exec&quot;))) src/mapi/u_current.c: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mapi/u_current.h: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mapi/u_current.h: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mapi/glapi/glapi.h: __attribute__((tls_model(&quot;initial-exec&quot;))); src/mapi/glapi/glapi.h: __attribute__((tls_model(&quot;initial-exec&quot;))); I know why they are using it. They want speed and force the model. <span class="quote">&gt; 0 /lib64/libcrypt.so.1 &gt; 0 /lib64/libm.so.6 &gt; 0 /lib64/libnsl.so.1 &gt; 0 /lib64/libnss_files.so.2 &gt; 0 /lib64/libpthread.so.0 &gt; 0 /lib64/libresolv.so.2 &gt; 0 /lib64/librt.so.1 &gt; 0 /lib64/libutil.so.1</span > - OK, all part of the implementation (glibc). That's only 13 libraries though and we have max counted slots + 14. I'm going to have to debug this myself to figure out what's wrong. Maybe it fails as we are loding the Nth library, but doesn't get time to display that information. Have you tried building a glibc with DTV_SURPLUS increased to 64? e.g. diff -urN glibc-2.19-883-g7e54fd0/sysdeps/generic/ldsodefs.h glibc-2.19-883-g7e54fd0.mod/sysdeps/generic/ldsodefs.h --- glibc-2.19-883-g7e54fd0/sysdeps/generic/ldsodefs.h 2014-08-13 12:24:07.000000000 -0400 +++ glibc-2.19-883-g7e54fd0.mod/sysdeps/generic/ldsodefs.h 2014-08-19 23:52:33.636202348 -0400 &#64;&#64; -389,7 +389,7 &#64;&#64; #define TLS_SLOTINFO_SURPLUS (62) /* Number of additional slots in the dtv allocated. */ -#define DTV_SURPLUS (14) +#define DTV_SURPLUS (64) /* Initial dtv of the main thread, not allocated with normal malloc. */ EXTERN void *_dl_initial_dtv; Does it help? Can you get a trace of all the libraries using STATIC_TLS? If I built you a scratch glibc would you try it? Here is a scratch build with DTS_SURPLUS set to 64: <a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=7429595">http://koji.fedoraproject.org/koji/taskinfo?taskID=7429595</a> </pre> </div> <div id="c16" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c16">Comment 16</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-20 07:48:53 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_16" >Your glibc-2.19.90-34 build allows calibre to start. And thank you for the long explanation on how things really are. My googling seems to have lead me really far a way from the actual problem :) </pre> </div> <div id="c17" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c17">Comment 17</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-20 13:44:07 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_17" >(In reply to Mikko Tiihonen from <a href="show_bug.cgi?id=1124987#c16">comment #16</a>) <span class="quote">&gt; Your glibc-2.19.90-34 build allows calibre to start. &gt; &gt; And thank you for the long explanation on how things really are. My googling &gt; seems to have lead me really far a way from the actual problem :)</span > You are very welcome. I'm happy to explain. However, please don't walk away now. What I need from you is help. How many STATIC_TLS libraries did Calibre need? I bumped the surplus slot allowance up to 64, so obviously less than that. Can you find them for me so I can figure out who I should talk to? </pre> </div> <div id="c18" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c18">Comment 18</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Mikko Tiihonen</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-20 22:41:29 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_18" >I'll be away from the machine with the problem for a week now. But here is what I had time to test with the new glibc: Assuming my grepping skills are still ok the list of .so files loaded with static_tls is in order: lib64/libc.so.6 lib64/libpthread.so.0 lib64/libutil.so.1 lib64/libm.so.6 lib64/libc.so.6 lib64/libresolv.so.2 lib64/librt.so.1 lib64/libGL.so.1 lib64/libglapi.so.0 lib64/libnsl.so.1 lib64/libEGL.so.1 lib64/libcrypt.so.1 lib64/libc.so.6 lib64/libc.so.6 lib64/libgomp.so.1 lib64/libnss_files.so.2 Thus 16 times, but only 13 unique. The libc.so.6 is loaded by different pids (threads?) like this: 23705 open(&quot;/lib64/libc.so.6&quot;, O_RDONLY|O_CLOEXEC) = 3 23705 open(&quot;/lib64/libc.so.6&quot;, O_RDONLY|O_CLOEXEC) = 3 23706 open(&quot;/lib64/libc.so.6&quot;, O_RDONLY|O_CLOEXEC) = 3 23709 open(&quot;/lib64/libc.so.6&quot;, O_RDONLY|O_CLOEXEC) = 3 Does it still use a new slow every time? </pre> </div> <div id="c19" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c19">Comment 19</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Zbigniew Jędrzejewski-Szmek</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-22 00:32:49 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_19" >I can confirm that the scratch glibc allows calibre to start. I can downgrade and provide further debug info if required. </pre> </div> <div id="c20" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c20">Comment 20</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Kevin Fenzi</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-23 00:07:40 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_20" >So, calibre 2.0.0 came out today. It switches over to qt5 and doesn't have this issue anymore, due to loading different libs. ;( So, we could just close this now... but it might also still be worth finding out what libraries are to blame when we hit them with other applications? </pre> </div> <div id="c21" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c21">Comment 21</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Ankur Sinha (FranciscoD)</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-26 09:22:48 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_21" >Hi, I seem to have run into the glibc bug too. I've filed a new bug here: <a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED ERRATA - Fix static TLS usage in Fedora shared libraries." href="show_bug.cgi?id=1124987">https://bugzilla.redhat.com/show_bug.cgi?id=1124987</a> Thanks Ankur </pre> </div> <div id="c22" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c22">Comment 22</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-26 14:28:55 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_22" >(In reply to Ankur Sinha (FranciscoD) from <a href="show_bug.cgi?id=1124987#c21">comment #21</a>) <span class="quote">&gt; Hi, &gt; &gt; I seem to have run into the glibc bug too. I've filed a new bug here: &gt; &gt; <a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED ERRATA - Fix static TLS usage in Fedora shared libraries." href="show_bug.cgi?id=1124987">https://bugzilla.redhat.com/show_bug.cgi?id=1124987</a></span > For the record it is not a glibc bug. It is a defect in the loaded libraries, they should not require TLS. Fundamentally it's a defect that we allowed developers to build shared libraries with static TLS in the first place. I will keep debugging this issue here and we'll get to a resolution. </pre> </div> <div id="c23" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c23">Comment 23</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-08-26 14:29:29 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_23" >*** <a class="bz_bug_link bz_status_CLOSED bz_closed bz_public " title="CLOSED DUPLICATE - [VLC] dlopen: cannot load any more object with static TLS" href="show_bug.cgi?id=1133843">Bug 1133843</a> has been marked as a duplicate of this bug. *** </pre> </div> <div id="c24" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c24">Comment 24</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Ankur Sinha (FranciscoD)</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-03 03:39:30 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_24" >Hi Carlos, Would you have any suggestions on how the vlc error could be fixed? I can get in touch with the package maintainer at rpmfusion and ask them to correct their build flags, for example. Thanks, Ankur </pre> </div> <div id="c25" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c25">Comment 25</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-04 02:31:38 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_25" >(In reply to Ankur Sinha (FranciscoD) from <a href="show_bug.cgi?id=1124987#c24">comment #24</a>) <span class="quote">&gt; Hi Carlos, &gt; &gt; Would you have any suggestions on how the vlc error could be fixed? I can &gt; get in touch with the package maintainer at rpmfusion and ask them to &gt; correct their build flags, for example. </span > There is nothing vlc can do. I'm going to fix this in glibc to work around the issue. After an analysis I see ~44 distribution-wide libraries using static TLS, and you can only realy have ~30 of them loaded at any given point (some are x11 drivers so you can only load one). Thus increasing the slots in glibc to 32 will fix this. </pre> </div> <div id="c26" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c26">Comment 26</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-06 18:25:56 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_26" ><a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=7538652">http://koji.fedoraproject.org/koji/taskinfo?taskID=7538652</a> This should now be fixed in glibc-2.19.90-36.fc21 which is currently building. In this release I've bumped the surplus DTV slots to 32. An analysis of the distribution shows that's a reasonable minimum given glibc, MESA, and X11 usage. </pre> </div> <div id="c27" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c27">Comment 27</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Ankur Sinha (FranciscoD)</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-07 05:38:15 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_27" >(In reply to Carlos O'Donell from <a href="show_bug.cgi?id=1124987#c26">comment #26</a>) <span class="quote">&gt; <a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=7538652">http://koji.fedoraproject.org/koji/taskinfo?taskID=7538652</a> &gt; &gt; This should now be fixed in glibc-2.19.90-36.fc21 which is currently &gt; building. In this release I've bumped the surplus DTV slots to 32. An &gt; analysis of the distribution shows that's a reasonable minimum given glibc, &gt; MESA, and X11 usage.</span > Fixes my VLC issue. Thanks, Carlos. </pre> </div> <div id="c28" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c28">Comment 28</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Fedora Update System</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-07 15:31:26 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_28" >glibc-2.19.90-36.fc21 has been submitted as an update for Fedora 21. <a href="https://admin.fedoraproject.org/updates/glibc-2.19.90-36.fc21">https://admin.fedoraproject.org/updates/glibc-2.19.90-36.fc21</a> </pre> </div> <div id="c29" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c29">Comment 29</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Fedora Update System</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-08 16:08:48 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_29" >Package glibc-2.19.90-36.fc21: * should fix your issue, * was pushed to the Fedora 21 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing glibc-2.19.90-36.fc21' as soon as you are able to. Please go to the following url: <a href="https://admin.fedoraproject.org/updates/FEDORA-2014-10275/glibc-2.19.90-36.fc21">https://admin.fedoraproject.org/updates/FEDORA-2014-10275/glibc-2.19.90-36.fc21</a> then log in and leave karma (feedback). </pre> </div> <div id="c30" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c30">Comment 30</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Fedora Update System</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-09-11 02:44:15 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_30" >glibc-2.19.90-36.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report. </pre> </div> <div id="c31" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c31">Comment 31</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Arkadiusz Miskiewicz</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-11-24 17:01:15 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_31" >(In reply to Carlos O'Donell from <a href="show_bug.cgi?id=1124987#c25">comment #25</a>) <span class="quote">&gt; After an analysis I see ~44 distribution-wide libraries using static TLS,</span > Could you tell us how to see/check which libraries are affected? </pre> </div> <div id="c32" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c32">Comment 32</a> </span> <span class="bz_comment_user"> <span class="vcard redhat_user"><span class="fn">Carlos O'Donell</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2014-11-24 17:32:04 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_32" >(In reply to Arkadiusz Miskiewicz from <a href="show_bug.cgi?id=1124987#c31">comment #31</a>) <span class="quote">&gt; (In reply to Carlos O'Donell from <a href="show_bug.cgi?id=1124987#c25">comment #25</a>) &gt; &gt; &gt; After an analysis I see ~44 distribution-wide libraries using static TLS, &gt; &gt; Could you tell us how to see/check which libraries are affected?</span > All architectures should set the STATIC_TLS flag in the dynamic section if any variable used static TLS. Some architectures, AArch64 I believe, fail to set STATIC_TLS (a bug), but in that case you can see the static tls usage by the relocation. e.g. [carlos&#64;koi static-tls]$ readelf -a -W /lib64/libc.so.6 | grep STATIC 0x000000000000001e (FLAGS) BIND_NOW STATIC_TLS OK, because libc.so.6 uses static TLS to accelerate the runtime. [carlos&#64;koi lib64]$ readelf -a -W libGL.so.1.2.0 | grep STATIC 0x000000000000001e (FLAGS) SYMBOLIC STATIC_TLS Technically not OK because libGL is not part of the core runtime, but as a distribution we are coordinating the use of static TLs across multiple libraries to accelerate the distribution. [carlos&#64;koi lib64]$ readelf -a -W libGL.so.1.2.0 | grep TPOFF 0000003f66e91fb8 0000000000000012 R_X86_64_TPOFF64 0 0000003f66e91ff0 000000ab00000012 R_X86_64_TPOFF64 0000000000000000 _glapi_tls_Dispatch + 0 If on x86_64 the STATIC_TLS would not have been set, we could have looked for thread-pointer offset relocations to catch the use of static TLS. Here you can see that the libGL variable `_glapi_tls_Dispatch` is using static TLS and has a TPOFF relocation to have the dynamic loader setup the variable properly during assembly of the in-memory application execution image. </pre> </div> <div id="c33" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c33">Comment 33</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Tim Niemueller</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2015-01-29 10:20:03 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_33" >Any chance we see this small patch backported to F20? On our robots we use an architecture that loads plugins from shared libraries (dozens on a complex system) which build on a wide variety of existing system libraries. Therefore we frequently face this problem when loading (many) plugins which load a large number of shared libraries. Another problem for example is graphviz, which itself dlopens plugins for rendering. We have rolled our own glibc (patch attached) and it works just fine. We would appreciate if that patch could be rolled out in F20. Since it does not change API or ABI this should be safe. A scratch build for testing (which we use on our production machines) is available at <a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=8722107">http://koji.fedoraproject.org/koji/taskinfo?taskID=8722107</a> </pre> </div> <div id="c34" class="bz_comment " > <div class="bz_comment_head"> <span class="bz_comment_number"> <a href="show_bug.cgi?id=1124987#c34">Comment 34</a> </span> <span class="bz_comment_user"> <span class="vcard "><span class="fn">Tim Niemueller</span> </span> </span> <span class="bz_comment_user_images"> </span> <span class="bz_comment_time"> 2015-01-29 10:20:46 UTC </span> </div> <pre class="bz_comment_text" id="comment_text_34" >Created <span class=""><a href="attachment.cgi?id=985507&amp;action=diff" name="attach_985507" title="Patch for F-20 package">attachment 985507</a> <a href="attachment.cgi?id=985507&amp;action=edit" title="Patch for F-20 package">[details]</a></span> Patch for F-20 package </pre> </div> <script> $(document).ready(function() { var mysel = document.getElementsByClassName('flag_type-415')[0]; var relnotes = document.getElementById('cf_release_notes'); if ( mysel && relnotes && relnotes.value != '' && relnotes.value != cf_doc_type_text[document.getElementById('cf_doc_type').value] && mysel.options[mysel.selectedIndex].value != '+' ) document.getElementById('cf_doc_warn').innerHTML = '<div class="warning "><b>Warning: Doc Text is not yet verified as correct</b></div>'; }); </script> </td> <td class="comment_actions"> </td> </tr></table> </div> <hr><div id="add_comment" class="bz_section_additional_comments"> <table> <tr> <td> <fieldset> <legend>Note</legend> You need to <a href="show_bug.cgi?id=1124987&amp;GoAheadAndLogIn=1">log in</a> before you can comment on or make changes to this bug. </fieldset> </td> </tr> </table> </div> </form> <hr> <ul class="related_actions"> <li><a href="show_bug.cgi?format=multiple&amp;id=1124987" title="Format For Printing"><i class="fa fa-print"></i></a></li> <li><a href="show_bug.cgi?ctype=xml&amp;id=1124987" title="Export as XML"><i class="far fa-file-excel"></i></a></li> <li><a href="enter_bug.cgi?cloned_bug_id=1124987" title="Clone This Bug"><i class="fa fa-clone"></i></a></li> <li> <a href="enter_bug.cgi?cloned_bug_id=1124987&lite=1" title="Copy is a lite weight clone that only copies the summary &amp; description"> <i class="far fa-clone"></i> </a> </li><li> <a href="buglist.cgi?bug_id=1124987&amp;bug_id_type=anddependson&amp;format=tvp" title="TreeView+"> <i class="fa fa-tree"></i> </a> </li> <li> <a href="#" title="Top of page"> <i class="fa fa-arrow-up" aria-hidden="true"></i> </a> </li> </ul> <br> </div> <footer id="footer"> <div class="intro"></div> <ul id="useful-links"> <li id="links-actions"><ul> </ul> </li> </ul> <div class="outro"><a href="page.cgi?id=redhat/privacy.html">Privacy</a> <a href="page.cgi?id=redhat/contact.html">Contact</a> <a href="page.cgi?id=faq.html">FAQ</a> <a href="page.cgi?id=terms-conditions.html">Legal</a></div> </footer> <script type="text/javascript"> $(document).ready(function() { $('form').submit(function( event ) { dt_submit(); if( $(this).attr('id') === 'changeform') { return(validateEnterBug(this)); } }); $('#site_menu').accessibleMenu(); $('#account_menu').accessibleMenu(); $('#site_menu').addClass('loaded'); $('#account_menu').addClass('loaded'); }); if (window.self !== window.top) { $('#header').addClass('bz_default_hidden'); $('#footer').addClass('bz_default_hidden'); $('.navigation').addClass('bz_default_hidden'); $('body').css('background-image', 'none'); } </script><script type="text/javascript"> $(document).ready(function() { selectize_standard_selects(); }); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10