EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Problems with Alh & Channel Access (R3.13.0b4).
From: Nick Patavalis <[email protected]>
To: [email protected]
Date: Tue, 4 Mar 1997 01:25:36 +0200 (EET)
Hi,

I have recently compiled and and installed Alh on a Pentium
Box running Linux. I am using an alh version  I got from APS at
29 Jan 1996, linked against **R3.13.0.beta4**  
Everything seems to work fine when no channels are connected. 
(e.g. when I'm passing it a config file that contains only
non-existing records). The ivalid (white) alarms are flashing, the tree
view is fine & everything, works as expected. 

When I pass a config file that does contain existing records the program
crashes --- imediately after it opens the first window (the small
window with the root-group).

Serching around with "gdb" I managed to locate the point where the
crash happens. Suprisingly it is inside the "libca" (channel access) 
code!

Here's where the crash actually happens:

-------- file: base/src/ca/services.c: function: cacMsg() -----------------

	case CA_PROTO_EVENT_ADD:
	{
		int v41;
		struct event_handler_args args;

		
		.......... several lines deleted ...........


		/*
		 * convert the data buffer from net
		 * format to host format
		 */
#		ifdef CONVERSION_REQUIRED
			(*cac_dbr_cvrt[piiu->curMsg.m_type])(
				piiu->pCurData, 
				piiu->pCurData, 
				FALSE,
				piiu->curMsg.m_count);
#		endif

		/*
		 * Orig version of CA didnt use this
		 * strucure. This would run faster if I had
		 * decided to pass a pointer to this
		 * structure rather than the structure itself
		 * early on.
		 */
		args.usr = monix->usr_arg;
		args.chid = monix->chan;
		args.type = piiu->curMsg.m_type;
		args.count = piiu->curMsg.m_count;
		args.dbr = piiu->pCurData;
			
------------------- End of source code segment ---------------------------


The crash happens durring the conversion from net to host
format. Specifically when the "cac_dbr_cvrt[]" array is de-referenced
and the outcome (function ptr) executed. When the crash happens the 
code reaches there with:
	piiu->curMsg.m_type == 37
Since there are but 34 function pointers in the  "cac_dbr_cvrt[]" 
array (as initialized in "convert.c"), crashing is unavoidable! 

Furthermore (to make sure that it is a client-side error) I loaded the 
R3.12.2 binaries on the IOC, and the outcome was the same (crashed
at the same point, for the same reason...)

I'm not familiar with the inner workings of channel access, and
this is as far as I can go!

Could anybody offer any help (or comments) on this?

Thank you in advace,
Nick Patavalis.

PS. I do use "MEDM", "probe" and other channel access clients on the
same platfom, and I have noticed no problems with them.

-- 

------------------------------------------------
Nick Patavalis               Snail-mail:
([email protected])         Thironos 11, 
University of Athens,            161 21 Athens,
Computer Science Dept.           Hellas.
------------------------------------------------





Replies:
Re: Problems with Alh & Channel Access (R3.13.0b4). Jeff Hill

Navigate by Date:
Prev: Re: Problems with Alh & Channel Access (R3.13.0b4). Jeff Hill
Next: RE: Problems with Alh & Channel Access (R3.13.0b4). Nick Patavalis
Index: 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Solaris 2.5.1 include problem Steve Lewis
Next: Re: Problems with Alh & Channel Access (R3.13.0b4). Jeff Hill
Index: 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·