Conference Room SAD


[Thread display] [Reply] [New arrival display] [Word search] [Notes] [管理用]

No. 691
Title Re^4: SAD Ver.1.0.10.9a1 のCaMonitor/CaGet
Date : 2017/12/26(Tue) 18:02:01
Name M. Satoh
URL
> > > > お世話になっております.
> > > > Ver.1.0.10.9a1 において,CaMonitor/CaGetで STRING typeのPVを指定すると,三文字までしかデータが取れません.
> > > >
> > > > e.g.)
> > > > PVnameの内容が,
> > > > SP_AT_0
> > > > である場合,
> > > >
> > > > data=CaMonitor["PVname"];
> > > > Print[data@Value[]]
> > > > をsadで実行すると,最初の三文字である,
> > > > SP_
> > > > が取得される.
> > > >
> > > コード的には、ca_element_countが 1なPVと転送要素数 1でのアクセスは等価なので、
> > > DBF_STRINGなwaveformに対する読み出しで再現を試みましたが、afsad*cでは再現できませんでした
> > >
> > > ca = CaMonitor["LIiBM:BPM_SYNC:NAMELIST", DefaultCount->1];
> > > ca@WaitValue[];
> > > Print[ca@Value[]];
> > > SP_AT_0
> > >
> > > In[1]:= CaRead["LIiBM:BPM_SYNC:NAMELIST"->2]
> > > Out[1]:= {{"SP_AT_0","SP_AT_1"},17,3,0}
> > > In[2]:= CaRead["LIiBM:BPM_SYNC:NAMELIST"->1]
> > > Out[2]:= {"SP_AT_0",17,3,0}
> >
> >
> > ありがとうございます.取り急ぎ,CaReadでは正常に表示されるようです.他も,ためしてみます.
> >
> > In[2]:= CaRead["LIiBM:BPM_SYNC:NAMELIST"->5]
> > Out[2]:= {{"SP_AT_0","SP_AT_1","SP_AT_2","SP_A1_G","SP_A1_0"},17,3,0}
> >
> DBF_STRINGなPV読み出しで、CaReadが正常、CaMonitor@Value[]でデータが腐るという症状のバグが、
> V1.0.10.9aからV1.0.10.9a1の途中に存在しています
> 当該バグは、Revisionev.6304で修正され patch levelが a1へバンプされています
>
> r6304の修正対象は、要素数 2以上のDBF_STRING PVからのValue callback時にて受信データからSAD上のString Listオブジェクトを構築する際に設定するStringオブジェクトの寿命スコープに誤りがあり、GCによりList内のStringオブジェクトの領域が破棄されるといバグです
>
> BFA[5148]: Fix CaMonitor crash by DBF_STRING waveform
> -Fix character pointer handling for Fix DBR_TIME_STRING ValueCB
> -Fix String object scope for DBR_TIME_STRING waveform(n > 1)

tfEPICSCA.c において
static int bDebug = 10;
に変更してためしてみました.
(gcc 4.9.2, CentOS 4.9, EPICS base R3.14.12 および R3.16.1)

<17-12-26(Tue) 17:30:40><-tcsh-></usr/users/masanori/work/sad/><masanori@pistachio>sadmope test5.sad
*** Welcome to SAD Ver.1.0.10.9a1 built at 2017-12-26 17:24:12 +0900 ***
*** Today: 17:30:44 Tuesday 12/26/2017 ***
cpu time= 5.6003E-02(sec) dt= 56.003(msec) free area:: 1793
OFF LOG ECHO;READ 77 ; 23
cpu time= 5.6003E-02(sec) dt= 56.003(msec) free area:: 1793
cpu time= 5.6003E-02(sec) dt= 56.003(msec) free area:: 1792
*** SADScript Initialization: /usr/new/pkg/operation/SAD_mt/share/Packages/init.n ***
*** Runtime Environment: /usr/new/pkg/operation/SAD_mt/share/Packages/init.local.n ***
RFSW RADCOD RAD FLUC INTRA POL COD DAPER EMIOU CMPLO FOURI SMEAR
F F F T F F T F F F F T
Design orbit length = 1.0000000000000000

BpmName=CaMonitor["LIiBM:BPM_SYNC:NAMELIST"];
eca_init
eca_chid_new: extend table size from 0 to 1024
eca_chid_new: allocate slot[1] for chid[0x9ed9cc8]
eca_fd_register: fd[5] open (nil)
CaOpen[LIiBM:BPM_SYNC:NAMELIST]
eca_chid_cas: Update slot[1] chid from 0x9ed9cc8 to 0xa1183b8
TkSense[1];
eca_fd_callback: >>> enter
eca_constatcb[LIiBM:BPM_SYNC:NAMELIST]: id=1 up conn=2
eca_evid_new: extend table size from 0 to 1024
eca_evid_new: allocate slot[1] for evid[0xb4dab02c]
eca_evid_cas: Update slot[1] evid from 0xb4dab02c to 0xa273890
eca_chid_inc: increment slot[1] reference count to 1
eca_fd_callback: exit <<<<
eca_fd_callback: >>> enter
eca_fd_callback: exit <<<<
eca_fd_callback: >>> enter
eca_valuecb[LIiBM:BPM_SYNC:NAMELIST]: id=1 conn=2 stat=1 DBR_TIME_STRING[99] {"SP_AT_0", "SP_AT_1", "SP_AT_2", "SP_A1_G", "SP_A1_0", "SP_A1_1", "SP_A1_M", "SP_AS_1", "SP_AS_2", "SP_AS_3", "SP_A2_1", "SP_A2_3", "SP_A2_4", "SP_A3_2", "SP_A3_4", "SP_A4_2", "SP_A4_4", "SP_B1_4", "SP_B2_4", "SP_B3_4", "SP_B4_4", "SP_B5_4", "SP_B6_4", "SP_B7_4", "SP_R0_01", "SP_R0_02", "SP_R0_14", "SP_R0_22", "SP_R0_32", "SP_R0_42", "SP_R0_51", "SP_R0_62", "SP_R0_63", "SP_C1_4", "SP_C2_4", "SP_C3_4", "SP_C4_4", "SP_C5_4", "SP_C6_4", "SP_C7_4", "SP_C8_4", "SP_11_4", "SP_12_4", "SP_13_5", "SP_15_T", "SP_16_5", "SP_17_2", "SP_17_44", "SP_18_2", "SP_18_49", "SP_21_2", "SP_21_4", "SP_22_2", "SP_22_4", "SP_23_2", "SP_23_4", "SP_24_1", "SP_24_2", "SP_24_3", "SP_24_4", "SP_26_1", "SP_26_2", "SP_26_3", "SP_26_4", "SP_27_2", "SP_27_4", "SP_28_2", "SP_28_4", "SP_DC_2", "S8_DN_01U", "SP_DN_12", "SP_DN_21", "SP_DN_31", "S8_DN_42U", "SP_DC_4", "SP_32_4", "SP_34_4", "SP_36_4", "SP_38_4", "SP_42_4", "SP_44_4", "SP_46_4", "SP_48_4", "SP_52_4", "SP_54_4", "SP_56_4", "SP_58_0", "SP_58_4", "SP_61_3", "SP_61_6", "SP_61_8", "SP_61_D1", "SP_61_D2", "SP_61_H1", "SP_61_A1", "SP_61_A3", "SP_61_F1", "SP_61_F4", "SP_61_F5"}
Segmentation fault

- Related List tree (Click ▼ to display all articles in a thread.)


- Reply Form (Reply to the above using the following.)
Name
E-Mail
Subject
Message
URL
Password (alphanumeric characters within 8)
Subscribe Key (Enter the number of the right image) Post key


- Modify or delete a contributeted article using the following form. -
Do No Password

- WebForum -