MDSplus / mdsplus

The MDSplus data management system
https://mdsplus.org/
Other
74 stars 44 forks source link

Error reporting when using function mdsvalue in Matlab which version——stable_release-7-142-80 #2772

Open WwkChina opened 5 months ago

WwkChina commented 5 months ago

Affiliation Institute of plasma physics, Chinese Academy of Sciences

Version(s) Affected stable_release-7-142-80

Platform Ubuntu 24.04 lts

Describe the bug In the latest stable version, calling the mdsvalue function in Matlab cannot return the data of the required signal

Expected behavior n/a

To Reproduce In MATLAB 2024a, use the mdsvalue function to read signal data: test_data=mdsvalue('\DFSDEV2'); Then the value of test_data shown in workspace is 1x165 char

Screenshots image

Additional context When I back the version to Stable 7.132-0, it's work. (But for this version of mdsplus-python cannot be installed because the distutils package is removal in Python 3.12, which is the default python version in Ubuntu 24.04 lts.

Expected behavior n/a

mwinkel-dev commented 5 months ago

Hi @WwkChina -- Thank you for alerting us to this issue. I will now see if I can reproduce the problem on my development system.

WwkChina commented 5 months ago

Hi @WwkChina -- Thank you for alerting us to this issue. I will now see if I can reproduce the problem on my development system. image

Sorry, the screenshot I uploaded contains some inappropriate content. I have uploaded a new screenshot for you.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

MDSplus has a client-server architecture. Thus, it would be useful to know about the configuration of each computer.

The %SS-W-SUCCESS in your preceding post is a confusing code. Ignore the SUCCESS portion of the code. The W means Warning. And thus, the exception you received truly is an error.

I am configuring my development system to see if I can reproduce this MATLAB issue.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

No problem was seen when running the MDSplus regression tests for MATLAB on the following configuration:

I will now use Ubuntu 24.04 to repeat that experiment. (It will probably take a few days to install the software to test that configuration.)

Addendum: - the client was also running Python 3.8.10

WwkChina commented 5 months ago

Hi @WwkChina,

MDSplus has a client-server architecture. Thus, it would be useful to know about the configuration of each computer.

  • Are both the MDSplus client computer and the MDSplus mdsip (archive) server running the same version of MDSplus?
  • If not, please list the MDSplus version (and operating system) for each.

The %SS-W-SUCCESS in your preceding post is a confusing code. Ignore the SUCCESS portion of the code. The W means Warning. And thus, the exception you received truly is an error.

I am configuring my development system to see if I can reproduce this MATLAB issue.

Thank you very much for testing the bug I submitted. The version installed on the server is most likely 7.1-14 (apologies, as I am not an administrator, just a regular user, I can only check the output using yum list installed | grep mdsplus).

I saw one of your replies saying that there is no issue on Ubuntu 20.04. However, I am experiencing the same problem on Ubuntu 20.04, MATLAB 2021b, and MDSplus 7.139.6. I suspect that the issue might be due to the old version on the server, which may have some incompatibilities with the newer versions. Currently, I have tested version 7.132.0, and it works fine.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

Thank you for the additional detail. It is very helpful.

To display the version of MDSplus installed on the mdsip server, run the following Python script from your client computer. And then post the results to this GitHub issue. This is important because it will be useful to know if the server is running stable-7-1-14 (released on 28-Mar-2017) or alpha-7-1-14 (12-Jul-2016).

import MDSplus as mds
conn = mds.Connection('<replace_with_your_mdsip_server>')
result = conn.get('Tcl("show version",_version_str)')
version = conn.get('_version_str')
print(version)

There was a change made to MDSplus in 2021 that affected mdsip connections. It might be that the error you have encountered is caused by using a client MDSplus version that is newer than 2021 with a server MDSplus version that is older than 2021.

I will now conduct an experiment with that mismatched configuration (old server, new client) and see if I can reproduce the issue.

WwkChina commented 5 months ago

Hello @mwinkel-dev After using the code you provided, I received the following output: MDSplus version: 7.1.11 Git branch: stable Git tag: stable_release-7-1-11 View: https://github.com/MDSplus/mdsplus/tree/stable_release-7-1-11 Download: https://github.com/MDSplus/mdsplus/archive/stable_release-7-1-11.tar.gz Git commit: 8035279ead55242154ec628138cb3fb2dd5b9ec6 Build date: Wed Sep 14 00:32:42 UTC 2016

mwinkel-dev commented 5 months ago

Hi @WwkChina,

Thank you for the above post. With that information about the MDSplus version on the server, I should be able to reproduce the issue. I will do that investigation tomorrow and post my results.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

It is not easy to create the configuration that exists at your site. Thus it will be difficult to troubleshoot this issue.

The stable-7-1-11 running on your server is from September 2016. An examination of the source code shows that it was compiled for Ubuntu14 (or earlier). Even though our build scripts use Docker containers, the scripts were unable to immediately build stable-7-1-11. Furthermore, we do not have an Ubuntu14 virtual machine needed for testing the issue.

Based on the information you have provided, all that can be concluded so far is this.

I will now discuss this issue with the rest of the MDSplus software team to get advice on how to proceed with this investigation.

Addendum:

mwinkel-dev commented 5 months ago

Hi @WwkChina,

I will set up a virtual machine that I can use for building the stable-7-1-11 that is used as the server at your site. When I am able to build that old version of MDSplus, I can then compare it to the alpha-7-112-1 used on our server. That comparison will provide us with clues as to why the stable-7-142-80 client works with our server, but fails with your server.

This investigation will take several more days.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

A few questions about your server . . .

I now have a 64-bit version of stable-7-1-11 on an Ubuntu 14 virtual machine. However, there is still some work to be done to configure it as a mdsip server. When that configuration work is finished, then I hope to be able to reproduce the problem you reported.

WwkChina commented 5 months ago

Hi @mwinkel-dev , Thank you for taking so much time to set up the test environment. The server's operating system is CentOS, but I'm not sure whether it's version 7 or 6, and I'm also unsure about the system's architecture. Based on the compilation time of the MDSplus on the server side, it is most likely CentOS 6, 32-bit.

mwinkel-dev commented 5 months ago

Hi @WwkChina,

Thanks for the additional information. In particular, 32-bit is likely an important clue. The majority of our automated regression tests are now for 64-bit platforms. (But we do have a few customers using 32-bit MDSplus.) So to investigate this issue, I will also include a virtual machine running 32-bit CentOS 6 with 32-bit MDSplus stable_7_1_11.

mwinkel-dev commented 2 months ago

Hi @WwkChina,

Apologies for this delayed response. (It has been a very busy two months.) I am assuming that this MATLAB issue is still a problem at your site, so am resuming the investigation. It will take me some time to set up the virtual machines needed to run the MDSplus versions in use at your site. I will post an update here next week.