Bug #54229 "EOF during negotation" on Configuration tab of Admin window
Submitted: 4 Jun 2010 10:57 Modified: 28 Feb 2012 14:14
Reporter: Greg Thomas Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Workbench: Administration Severity:S3 (Non-critical)
Version:5.2.22, 5.2.24, 5.2.25, 5.2.31 OS:Microsoft Windows
Assigned to: Assigned Account CPU Architecture:Any

[4 Jun 2010 10:57] Greg Thomas
Description:
If I connect to a remote windows server using ssh, then the server status is reported correctly in the Admin window. However, if I open the Configuration tab, a pop-up is presented "EOF During Negotation [OK]", and no option is given to edit the configuration.

The output window contains the following;

Traceback (most recent call last):
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_configuration.py", line 206, in tab_changed
    panel.page_activated()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_config_file_ui.py", line 70, in page_activated
    self.create_ui()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_config_file_ui.py", line 220, in create_ui
    self.load_options_from_cfg()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_config_file_ui.py", line 623, in load_options_from_cfg
    self.cfg_be.parse_file(self.file_name_ctrl.get_string_value())
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_config_file_be.py", line 330, in parse_file
    self.file_name = self.read_mysql_cfg_file(file_name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_config_file_be.py", line 244, in read_mysql_cfg_file
    local_file_name = self.ctrl_be.fetch_file(file_name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_control_be.py", line 806, in fetch_file
    self.ssh.get("'" + fname + "'", name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_control_be.py", line 421, in get
    ret = self.ssh.get(source, dest)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\modules\wb_admin_ssh.py", line 253, in get
    sftp = self.client.open_sftp()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS/python/site-packages\paramiko\client.py", line 389, in open_sftp
    return self._transport.open_sftp_client()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS/python/site-packages\paramiko\transport.py", line 827, in open_sftp_client
    return SFTPClient.from_transport(self)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS/python/site-packages\paramiko\sftp_client.py", line 106, in from_transport
    return cls(chan)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS/python/site-packages\paramiko\sftp_client.py", line 89, in __init__
    raise SSHException('EOF during negotiation')
paramiko.SSHException: EOF during negotiation

Full details of setup:
Client: Windows 7 Enterprise, x86, Workbench 5.2.22
Server: Windows Server 2003 SP2, MySQL 5.1.40 x86, cygwin SSH server.

How to repeat:
Open the "Server Administration" window to a remote Windows server from a windows client running workbench.

Click the "Configuration" tab.
[4 Jun 2010 11:17] Susanne Ebrecht
Many thanks for writing a bug report.

On the first view it looks like an SSH/network/firewall problem to me.

Can you connect via SSH to your other maschine without Workbench?
Is SSH port open?
[4 Jun 2010 12:08] Greg Thomas
It's not an SSH problem, AFAICT. Workbench is correctly displaying the status of the remote server. From the Startup message log:

2010-06-04 13:03:28 - Checked server status: Server is running.
2010-06-04 13:03:29 - Server is running

And from the output:
get_server_version: parsed (5, 1, 46)
x64 on x64
Unable to fetch ProgramFiles value in local Windows machine: 
Unable to fetch ProgramFiles(x86) value in local Windows machine: 
get_server_version: parsed (5, 1, 40)

That's very different from the output of these when SSH wasn't working. And just to make sure ...

$ ssh xxx@yyy sc query mysql
xxx@yyy's password: 

SERVICE_NAME: mysql 
        TYPE               : 10  WIN32_OWN_PROCESS  
        STATE              : 4  RUNNING 
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
[1 Jul 2010 16:07] Maksym Yehorov
Pls open server profile in the 'Manage Server Instances'. Select your server profile and switch to the 'System Profile' tab. There is 'Configuration file' field and [...] button. If you press the button it should try to open sftp connection to your remote box, where you can pick config file location.
Doing so will both pick correct path (according to ftp pivot dir) and ensure that sftp works on the remote box.

N.B. for the [...] button to work server profile must already have ssh section set up.
[1 Jul 2010 17:43] Greg Thomas
I tried that, it didn't make any difference. Using the [...] the path was determined to be 

/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/my.ini

which appears to work using ssh from my client machine;

$ ssh user@host "ls '/cygdrive/c/program files/mysql/mysql server 5.1/my.ini'"
user@hosts's password: ******
/cygdrive/c/program files/mysql/mysql server 5.1/my.ini

but I'm still getting the EOF error;

x64 on x64
Unable to fetch ProgramFiles value in local Windows machine: 
Unable to fetch ProgramFiles(x86) value in local Windows machine: 
get_server_version: parsed (5, 1, 40)
Traceback (most recent call last):
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_configuration.py", line 206, in tab_changed
    panel.page_activated()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_config_file_ui.py", line 71, in page_activated
    self.create_ui()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_config_file_ui.py", line 219, in create_ui
    self.load_options_from_cfg()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_config_file_ui.py", line 650, in load_options_from_cfg
    self.cfg_be.parse_file(self.file_name_ctrl.get_string_value())
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_config_file_be.py", line 369, in parse_file
    self.file_name = self.read_mysql_cfg_file(file_name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_config_file_be.py", line 283, in read_mysql_cfg_file
    local_file_name = self.ctrl_be.fetch_file(file_name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_control_be.py", line 806, in fetch_file
    self.ssh.get("'" + fname + "'", name)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_control_be.py", line 421, in get
    ret = self.ssh.get(source, dest)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modules\wb_admin_ssh.py", line 254, in get
    sftp = self.client.open_sftp()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE/python/site-packages\paramiko\client.py", line 389, in open_sftp
    return self._transport.open_sftp_client()
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE/python/site-packages\paramiko\transport.py", line 827, in open_sftp_client
    return SFTPClient.from_transport(self)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE/python/site-packages\paramiko\sftp_client.py", line 106, in from_transport
    return cls(chan)
  File "C:\Program Files\MySQL\MySQL Workbench 5.2 CE/python/site-packages\paramiko\sftp_client.py", line 89, in __init__
    raise SSHException('EOF during negotiation')
paramiko.SSHException: EOF during negotiation
[1 Jul 2010 19:11] Maksym Yehorov
Can you fetch the file at the given location using CLI sftp?
As I understand you have cygwin installed on remote windows box and ssh server is run from cygwin environment?
[2 Jul 2010 13:47] Greg Thomas
My exact details are:
Client: Windows 7 (32 bit), Workbench 5.2.22, 5.2.24, and 5.2.25
Server: Windows 2003 SP2 (32 bit) + MySQL Server 5.1.40 + cygwin ssh server

The cygwin sftp command line client works fine ...
 
$ sftp user@host
user@host's password: 
Connected to host
sftp> get '/cygdrive/c/program files/mysql/mysql server 5.1/my.ini'
Fetching /cygdrive/c/program files/mysql/mysql server 5.1/my.ini to my.ini
/cygdrive/c/program files/mysql/mysql server  100% 9306     9.1KB/s   00:01    
sftp> bye

And I also double checked using WinSCP just in case the server was only allowing in cygwin clients due to some previously unseen bug.

I also note that the log I submitted previously includes the line ...

x64 on x64

despite both client and server being 32 bit only.
[10 Aug 2010 9:18] Susanne Ebrecht
This could be related to an old server bug.

Please upgrade your server to actual server version 5.1.49.
[10 Sep 2010 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[10 Dec 2010 16:09] Greg Thomas
(Sorry for the delay, the server upgrade had to be scheduled in).

OK, a few upgrades later, and we are now at ...

Client: Windows 7 32bit, Workbench 5.2.31 CE
Server: Windows 2003 SP2 32 bit, MySQL Server 5.1.53

If anything, the problem seems to have got worse.

Previously, the "System" and "Server health" graphs on the Server status area of the admin window were displaying correctly, no longer. These are all blank, and the server is described as "Unknown". 

When viewing the Configuration tab, the same "SSHException: EOF during negotation" popup still occurs. The full trace of the output tab is now much smaller, though;

<type 'instance'>
WARNING: Unable to determine codepage from shell: 
WARNING: Unable to fetch ProgramFiles value in Windows machine: 
WARNING: Unable to fetch ProgramFiles(x86) value in local Windows machine: 
<type 'instance'>
Can't find a place to upload script dirpath='%USERPROFILE%'
Option verbose  skipped because of missing value
Option standalone  skipped because of missing value
Option one-thread  skipped because of missing value
Option binlog-format  skipped because of missing value
Option des-key-file  skipped because of missing value
Option innodb_file_format  skipped because of missing value
Option innodb_rollback_on_timeout  skipped because of missing value
Option slave-skip-errors  skipped because of missing value
Option large-pages  skipped because of missing value
Option bootstrap  skipped because of missing value

Note that ssh from the command line of the same client continues to work; 

$ ssh xxx@yyy sc query mysql
xxx@yyy's password: 

SERVICE_NAME: mysql 
        TYPE               : 10  WIN32_OWN_PROCESS  
        STATE              : 4  RUNNING 
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
[11 Dec 2010 20:04] Alfredo Kojima
Hi

Have you tried using freesshd instead of cygwin? Also, do other Windows machines give the same trouble for you? Can you try connecting Admin on another Windows host to see if the same problem occurs?
[27 Feb 2011 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[30 Jan 2012 7:55] W. Rauchenstein
Same problem appears since update of MySQL Workbench to:

Client:
- Win7-64bit
- MySQL Workbench 5.2.37 CE

Server:
- openSuSE 12.1 (64-bit)
- MySQL Server 5.5.16

Older version of Workbench worked fine.