Labview UI project for Linuxcnc

More
6 years 1 day ago #187986 by rodw

cmorley wrote: I would suggest using git bisect to (hopefully) find the commit that caused it.

Chris


You could also try V2.8 which is before the conversion to Python 3 was pushed.

Please Log in or Create an account to join the conversation.

More
6 years 1 day ago #188000 by auto-mation-assist
Below are some values from the 03/06/2020 master and 09/20/master NML configuration files.
Somewhere in between these dates is when this problem occurred based on the zip files I have on hand.

What ever caused the below buffers size increases to get linuxCNC to run after compiling appears to be the problem. These very large changes indicate that there were major changes being made that effect emcStatus and toolSts buffers which I my opinion is causing compatibility issues.

# Top-level buffers to EMC for the 03/06/2020 master
B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcStatus SHMEM localhost >>>> 20480 0 0 2 16 1002 TCP=5005 xdr
B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue

# These are for the IO controller, EMCIO
B toolCmd SHMEM localhost 1024 0 0 4 16 1004 TCP=5005 xdr
B toolSts SHMEM localhost >>>> 8192 0 0 5 16 1005 TCP=5005 xdr


# Top-level buffers to EMC for the 09/20/2020 master
B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr queue confirm_write serial
B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue
B emcStatus SHMEM localhost >>>> 170000 0 0 2 16 1002 TCP=5005 xdr

# These are for the IO controller, EMCIO
B toolCmd SHMEM localhost 2048 0 0 4 16 1004 TCP=5005 xdr
B toolSts SHMEM localhost >>>> 131072 0 0 5 16 1005 TCP=5005 xdr

The value 170000 is more than the 123904 or so actually required to run at the moment. But that has no effect on the issue as long as sufficient space is available for the data. However making buffer sizes up to 8 times present values does not give me good feelings at all. Is there any info available as to why such large changes were required in current master and details what all this space is going to contain?

The total size of the emcStatus data sent to the remote in the 03/06/2020 time frame of master is 9196 bytes. And has no issues with unknown data attaching itself to data transfers and thus the my false cause in my code I posted before is never executed. This is not the case for the 09/20/2020 version which has the increased buffer sizes. To me it appears that the unknown data transfer issue and the increase in buffer sizes are related in some way. I'm inclined to suspect that data is being moved around in a way that is not totally correct by the change that caused the buffer size increases and that remote access was never considered. Thus if this data is going to be routed to a remote it needs to have handshaking items like remote status request for accessing the emcStatus buffer. Perhaps it should even have have its own buffer to prevent conflicts.

LinuxCNC master dated as being 03/06/2020 version reports the below when running and talking to the remote status process.

(time=1604228111.357099,pid=2543): TCPSVR request received: fd = 5, serial_number=7204, request_type=1, buffer_number=2
(time=1604228111.357123,pid=2543): rcs_sem_post(360449) called.
(time=1604228111.357182,pid=2543): wrote 20 bytes to 5
(time=1604228111.357209,pid=2543): wrote 9196 bytes to 5

The unknown added data that attaches to or is sent with status request in the later masters never reports their presence like in the line directly above which makes me suspect that they are real time driven. It show up at regular intervals in burst of six in a row.

Please Log in or Create an account to join the conversation.

More
6 years 22 hours ago #188010 by dgarrett
history for linuxcnc.nml:
Code:
$ git log --reverse --pretty=format:"%h %ai %s" configs/common/linuxcnc.nml 33cfebe5a 2012-01-18 12:20:08 -0600 rename more files to linuxcnc ddc49aa0c 2013-06-19 17:02:12 -0600 nml cleanup: IO never writes to the toolCmd channel e385c7df0 2013-06-20 12:10:16 -0500 nml cleanup: the GUIs don't need access to the tool NML channels 2c4d15945 2013-06-20 12:17:50 -0500 nml cleanup: make keystick identify itself as 'xemc' c4c7fb9d5 2014-10-20 12:17:27 -0500 nml: implement command queue with reliable reception c0c788c95 2016-03-24 18:12:06 -0500 configs: must enable "confirm_write" to get serial number return 48a06f30f 2016-03-24 20:13:18 -0500 fix other nmlfiles b51ef8cc3 2020-04-07 16:50:15 +0200 increase max tools from 55 to 1000

last commit: github.com/LinuxCNC/linuxcnc/commit/b51ef8cc3

####################################################################

Note that you can specify a *custom* emc_nmlfile in your ini file as:
Code:
[EMC] NML_FILE=path_to_custom_file

Ref: github.com/LinuxCNC/linuxcnc/blob/master...c/task/emcsvr.cc#L60

Example usage in test suite:
github.com/LinuxCNC/linuxcnc/blob/master...linuxcncrsh-test.ini


To identify the default emc_nmlfile (configs/common/linuxcnc.nml):
Code:
$ find src -iname '*.*c' -exec grep -nH emc_nmlfile {} \;|grep = src/emc/nml_intf/emcglb.c:22:char emc_nmlfile[LINELEN] = DEFAULT_EMC_NMLFILE; $ find src -iname '*.*h' -exec grep -nH DEFAULT_EMC_NMLFILE {} \; src/emc/nml_intf/emccfg.h:28:#define DEFAULT_EMC_NMLFILE EMC2_DEFAULT_NMLFILE $ find src -iname '*.*h' -exec grep -nH EMC2_DEFAULT_NMLFILE {} \; src/emc/nml_intf/emccfg.h:28:#define DEFAULT_EMC_NMLFILE EMC2_DEFAULT_NMLFILE src/config.h:37:#define EMC2_DEFAULT_NMLFILE "/data/gitb/linuxcnc-dev/configs/common/linuxcnc.nml" $ # '/data/gitb/linuxcnc-dev' is the top directory in git tree, master branch

Please Log in or Create an account to join the conversation.

More
6 years 15 hours ago - 6 years 15 hours ago #188052 by auto-mation-assist
Thanks for the info.

I have in the past used many of my own NML configuration files. The NML configuration file it self is not the problem that I have noticed. It just reflects that there were changes made inside of LinuxCNC that required several buffer sizes to be increased by a large amount in recent masters. There have been a number of changes in the past that increase buffer size but never such a large one.

It is not possible to lower the values to the values used in the past, NML will complain that there is insufficient space for the data to be placed within them.

I think that 09/20/2020 is just a bit past the start of development work that may have introduced the problem I'm trying to get resolved.

I forgot to add that many of the git functions are not available for trouble shooting when working with downloaded linuxCNC master zip files.
Last edit: 6 years 15 hours ago by auto-mation-assist. Reason: Added comment on zip file use

Please Log in or Create an account to join the conversation.

More
6 years 12 hours ago #188080 by rodw
I really am at a loss for you. I went through some of the commits back until 2.8 became the release version. I could not see any changes in the commits that might cause this bug of yours. Dewey has shared the commit where the tool table was increased. That and state tags fully explains the data structure size increases.

Chris mentioned the use of git bisect. You could start at the last known good git and roll forward until the error was found. But that assumes it really is a LCNC issue. Unfortunately, you need to get really specific to the commit if you are going to get any changes made. I'm not really sure that anything has been done. This is at the core of Linuxcnc and many years old so I don't think it would have been changed. Particularly when the comments in the source say in some files that a wise developer will not attempt to change anything!

Please Log in or Create an account to join the conversation.

More
5 years 11 months ago #188123 by auto-mation-assist
I will dig in more to see if I can find a hint of where this is coming from. I have compared most of the files that comprise the heart of LinuxCNC more than once and have found nothing that jumps out as being the potential cause. It is possible that this is being caused by a addition that is not part of linuxCNC itself but compiled with it and executing on its own to get status info when it sees requests for status.

I do not use git much for anything other than using it for a occasional master clone. Other than that I work with the zip versions of master but those are not listed as being available by specific commits. If they are available somewhere then I sure would like a link to their location to fill in the my summer 2020 file gap when other things had priority.

Please Log in or Create an account to join the conversation.

Time to create page: 0.286 seconds
Powered by Kunena Forum