Subject: bug#17029: 24.3.50; gnutls-error

From: Peter Münster <[email-masked]>
Date: Tue, 18 Mar 2014 01:01:36 +0100

Hi,

With the latest bzr-version (revno 116774), `url-retrieve-synchronously'
terminates with a gnutls-error:

--8<---------------cut here---------------start------------->8---
Contacting host: btc-e.com:443
gnutls.c: [0] (Emacs) fatal error: An unexpected TLS handshake packet was received.
gnutls.el: (err=[-19] An unexpected TLS handshake packet was received.) boot: (:priority NORMAL :hostname btc-e.com :loglevel 0 :min-prime-bits 256 :trustfiles (/etc/ssl/ca-bundle.pem) :crlfiles nil :keylist nil :verify-flags nil :verify-error nil :callbacks nil)
Entering debugger...
--8<---------------cut here---------------end--------------->8---

This is the test-command:
(url-retrieve-synchronously "https://btc-e.com/api/2/btc_eur/ticker")

And here the backtrace:

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (gnutls-error #<process btc-e.com> -19)
  signal(gnutls-error (#<process btc-e.com> -19))
  gnutls-negotiate(:process #<process btc-e.com> :type gnutls-x509pki :hostname "btc-e.com")
  open-gnutls-stream("btc-e.com" #<buffer  *url-http-temp*> "btc-e.com" 443)
  network-stream-open-tls("btc-e.com" #<buffer  *url-http-temp*> "btc-e.com" 443 (:type tls :nowait t))
  open-network-stream("btc-e.com" #<buffer  *url-http-temp*> "btc-e.com" 443 :type tls :nowait t)
  byte-code("\306\211\n\307>\203$\n\310=\203\311\312
\313\n\314\315\316\317\"\202Y\n\320=\2034\321       \f
$\202Y\n\322=\203D\323                       \f
$\202Y\n\324=\203T\325\f
$\202Y\326\327\"*\306\207" [coding-system-for-write coding-system-for-read gw-method name buffer host binary (tls ssl native) native plain open-network-stream :type :nowait featurep make-network-process (:nowait t) socks socks-open-network-stream telnet url-open-telnet rlogin url-open-rlogin error "Bad setting of url-gateway-method: %s" service url-gateway-method conn] 11)
  url-open-stream("btc-e.com" #<buffer  *url-http-temp*> "btc-e.com" 443)
  url-http-find-free-connection("btc-e.com" 443)
  url-http([cl-struct-url "https" nil nil "btc-e.com" nil "/api/2/btc_eur/ticker" nil nil t nil t] #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (nil) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "\n\n(fn &rest IGNORED)"] (nil))
  url-https([cl-struct-url "https" nil nil "btc-e.com" nil "/api/2/btc_eur/ticker" nil nil t nil t] #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (nil) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "\n\n(fn &rest IGNORED)"] (nil))
  url-retrieve-internal("https://btc-e.com/api/2/btc_eur/ticker" #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (nil) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "\n\n(fn &rest IGNORED)"] (nil) nil nil)
  url-retrieve("https://btc-e.com/api/2/btc_eur/ticker" #[128 "\302\303\304p#\210\300\305\240\210\301p\240\207" [(nil) (nil) url-debug retrieval "Synchronous fetching done (%S)" t] 5 "\n\n(fn &rest IGNORED)"] nil nil nil)
  url-retrieve-synchronously("https://btc-e.com/api/2/btc_eur/ticker")
  eval((url-retrieve-synchronously "https://btc-e.com/api/2/btc_eur/ticker") nil)
  eval-expression((url-retrieve-synchronously "https://btc-e.com/api/2/btc_eur/ticker") nil)
  call-interactively(eval-expression nil nil)
  command-execute(eval-expression)
--8<---------------cut here---------------end--------------->8---

Output of "gnutls-cli -v":
--8<---------------cut here---------------start------------->8---
gnutls-cli 3.2.4
Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
This is free software. It is licensed for use, modification and
redistribution under the terms of the
GNU General Public License, version 3 or later
    <http://gnu.org/licenses/gpl.html>
Please send bug reports to:  <[email-masked]>
--8<---------------cut here---------------end--------------->8---

Output of "gnutls-cli btc-e.com":
--8<---------------cut here---------------start------------->8---
Processed 150 CA certificate(s).
Resolving 'btc-e.com'...
Connecting to '141.101.121.194:443'...
- Certificate type: X.509
- Got a certificate list of 2 certificates.
- Certificate[0] info:
 - subject `OU=Domain Control Validated,CN=*.btc-e.com', issuer `C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\, Inc.,OU=http://certs.godaddy.com/repository/,CN=Go Daddy Secure Certificate Authority - G2', RSA key 2048 bits, signed using RSA-SHA256, activated `2014-03-15 15:12:42 UTC', expires `2016-03-15 15:12:42 UTC', SHA-1 fingerprint `d2c7044cd27bb32fb0424f1239a49db86b0aabde'
	Public Key Id:
		e66d3115b21aa22025b78955f82efb29533e515e
	Public key's random art:
		+--[ RSA 2048]----+
		|. +o.     . .    |
		| *.o       o .   |
		|o +.  . . . .    |
		| . .....Eo .     |
		|   ..o .S o      |
		|  . + .o . o     |
		|   = .  . o      |
		|  + o.   .       |
		|   +o.           |
		+-----------------+

- Certificate[1] info:
 - subject `C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\, Inc.,OU=http://certs.godaddy.com/repository/,CN=Go Daddy Secure Certificate Authority - G2', issuer `C=US,ST=Arizona,L=Scottsdale,O=GoDaddy.com\, Inc.,CN=Go Daddy Root Certificate Authority - G2', RSA key 2048 bits, signed using RSA-SHA256, activated `2011-05-03 07:00:00 UTC', expires `2031-05-03 07:00:00 UTC', SHA-1 fingerprint `27ac9369faf25207bb2627cefaccbe4ef9c319b8'
- Status: The certificate is trusted. 
- Description: (TLS1.2-PKIX)-(ECDHE-RSA-SECP256R1)-(AES-128-GCM)-(AEAD)
- Session ID: 98:0F:B8:DC:1A:66:6B:E6:71:85:32:82:B4:7B:90:A8:D4:62:D8:0F:00:8C:09:69:B4:36:34:0A:E2:63:F0:EE
- Ephemeral EC Diffie-Hellman parameters
 - Using curve: SECP256R1
 - Curve size: 256 bits
- Version: TLS1.2
- Key Exchange: ECDHE-RSA
- Server Signature: RSA-SHA512
- Cipher: AES-128-GCM
- MAC: AEAD
- Compression: NULL
- Handshake was completed

- Simple Client Mode:

- Peer has closed the GnuTLS connection
--8<---------------cut here---------------end--------------->8---

Further information:

--8<---------------cut here---------------start------------->8---
In GNU Emacs 24.3.50.2 (x86_64-suse-linux-gnu, GTK+ Version 3.10.4)
 of 2014-03-16 on micropit
Repository revision: 116774 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11403901
System Description:	openSUSE 13.1 (Bottle) (x86_64)

Configured using:
 `configure --without-toolkit-scroll-bars'

Important settings:
  value of $LC_CTYPE: en_GB.utf8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Features:
(shadow dabbrev emacsbug url-http url-gw url-auth shr mm-archive nnir
mailalias bbdb-message gnus-html browse-url url-cache mm-url
vc-dispatcher vc-svn org-rmail org-mhe org-irc org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-w3m sort smiley gnus-cite
mail-extr gnus-async gnus-bcklg qp gnus-salt gnus-ml disp-table
mule-util gnutls network-stream starttls bbdb-gnus bbdb-mua bbdb-com crm
gnus-delay gnus-draft nndraft nnmh nnml gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg gnus-cache gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime dig gnus-icalendar org-capture
gnus-sum icalendar diary-lib diary-loaddefs gnus-demon nntp gnus-group
gnus-undo json gnus-start gnus-cloud nnimap nnmail mail-source tls utf7
netrc nnoo parse-time gnus-spec gnus-int gnus-range message sendmail
dired rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus gnus-ems gnus-compat url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util url-parse
auth-source eieio eieio-core password-cache url-vars mailcap nnheader
gnus-util mail-utils mm-util mail-prsvr wid-edit shell-pop notifications
dbus xml wombat-theme savehist paren delsel server org-clock bbdb
bbdb-site timezone lua-mode edmacro kmacro rx org-notify org-element org
byte-opt bytecomp byte-compile cconv advice help-fns org-macro
org-footnote org-pcomplete pcomplete org-list org-faces org-entities
noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle
org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs slime-autoloads bbdb-loaddefs tex-site auto-loads gnus-load
autoinsert compile comint ansi-color po-mode cl-macs gv php-mode derived
etags ring cc-langs cl cl-loaddefs cl-lib cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs speedbar
sb-image ezimage dframe easymenu time-date tooltip electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)
--8<---------------cut here---------------end--------------->8---

How could I solve this problem please?

TIA for any hints,
-- 
           Peter