YES - Thank You -

I'll have a good night sleep now:-)

Peter


Am 20.08.2018 um 21:17 schrieb Chris Moller:
> Aha!  That both versions, edif and edif2, fail the same was a great
> clue!  Another patch just committed...
>
>
> On 20/08/18 13:03, Hans-Peter Sorge wrote:
>>
>> Hello Chris,
>>
>> The session blocking was my fault. Sorry for having you mislead on this.
>>
>> I used
>>
>> 'libedif.so' ⎕fx 'edif2'
>>
>> instead of
>>
>> 'libedif2.so' ⎕fx 'edif2'
>>
>> -- 
>> However, the latest version still segfaults on
>> 'libedif2.so' ⎕fx 'edif2'
>> 'libedif2.so' ⎕fx 'edif2'
>> )off
>>
>> and
>> 'libedif.so' ⎕fx 'edif2'
>> 'libedif.so' ⎕fx 'edif2'
>> )off
>>
>>
>> Best regards,
>> Hans-Peter
>>
>>
>> Am 20.08.2018 um 18:48 schrieb Chris Moller:
>>> Yet another bugfix committed to https://github.com/ChrisMoller/edif.git
>>>
>>> Mostly, what it does is detect multiple ⎕fx invocations of
>>> libedif2.so and short-circuits them, leaving the inotify() process
>>> intact and the message queue opened only once.  It also detects
>>> )clear and closes/unlinks the queue, kills the inotify() process,
>>> and closes any open editor processes.
>>>
>>> Chris
>>>
>>> On 20/08/18 10:38, Hans-Peter Sorge wrote:
>>>>
>>>> Hello Chris,
>>>>
>>>> The session stays blocked - what ever I try fiddling around.
>>>>
>>>> During this fiddling I came across on other situation that makes
>>>> the edif2 case even more interesting: 
>>>>
>>>> (EDIF2 is a work space having edif2 as function only)
>>>>
>>>> The first session (eg. after reboot) has a double free corruption
>>>> in either case.
>>>> 1) 'libedif.so' ⎕fx 'edif2'  ..  'libedif.so' ⎕fx 'edif2' .. )off
>>>> or
>>>> 2) )load a WS having function edif2 then  'libedif.so' ⎕fx 'edif2'
>>>> .. )off
>>>>
>>>>
>>>> [joy@joyw520 ~]$ apl
>>>>
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>
>>>>        )clear
>>>> CLEAR WS
>>>>       )load EDIF2
>>>> SAVED 2018-08-20 16:03:15 (GMT+2)
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>       )off
>>>> double free or corruption (fasttop)
>>>> Abgebrochen (Speicherabzug geschrieben)
>>>>
>>>>
>>>> The following case is not expected. Yet one could argue )save does
>>>> some cleaning. 
>>>>
>>>> [joy@joyw520 ~]$  apl
>>>>
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>       )save EDIF2
>>>> NOT SAVED: THIS WS IS CLEAR WS
>>>>       )drop EDIF2
>>>> 2018-08-20  16:10:32 (GMT+2)
>>>>       )save EDIF2
>>>> 2018-08-20  16:10:36 (GMT+2)
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>       )off
>>>>
>>>> Goodbye.
>>>> Session duration: 133.863 seconds
>>>>
>>>>
>>>> But now, on a naked WS, the corruption is gone .... sofar I could
>>>> not repeat a subsequent corruption until after a reboot!
>>>>
>>>> [joy@joyw520 ~]$ apl
>>>>                                       
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>       'libedif.so' ⎕fx 'edif2'
>>>> edif2
>>>>       )off
>>>>
>>>> Goodbye.
>>>> Session duration: 6.48602 seconds
>>>>
>>>> Best regards,
>>>> Hans-Peter
>>>>
>>>> Am 20.08.2018 um 05:26 schrieb Chris Moller:
>>>>> Hi, Hans-Peter,
>>>>>
>>>>> That quirk where you quad-fx edif2 twice...
>>>>>
>>>>> When edif2 starts, it fork()s a process to watch for changes in
>>>>> the working-file copies of the functions passed to emacs, and it
>>>>> also opens a POSIX message queue so the monitor process can
>>>>> communicate changes to APL.  When you quad-fx-ed edif2 twice, all
>>>>> that was duplicated--two monitor processes, another sender on the
>>>>> queue, and more signals being emitted.  I've put a patch in (but
>>>>> haven't committed it yet, and it should fix the segfault) that
>>>>> prevents all that, but my question is whether the "session
>>>>> blocked" bug happens only after the second quad-fx.  I just can't
>>>>> reproduce the blocking bug here, so I'm looking desperately for
>>>>> some non-obvious cause.
>>>>>
>>>>> Thanks,
>>>>> Chris
>>>>>
>>>>> On 08/18/18 15:29, Hans-Peter Sorge wrote:
>>>>>>
>>>>>> Hello Chris,
>>>>>>
>>>>>> I have just one process running.
>>>>>>
>>>>>> I recompiled and reinstalled edif to make sure it's the most
>>>>>> recent version.
>>>>>>
>>>>>> During editing with emacs:
>>>>>>
>>>>>> session is blocked, then in APL session
>>>>>>
>>>>>> Ctrl C
>>>>>> fg
>>>>>>
>>>>>> 'some data' ENTER  - no response
>>>>>>
>>>>>> in emacs: save
>>>>>>
>>>>>> in APL session:
>>>>>>        'some data' replayed
>>>>>> 'some data' response
>>>>>>
>>>>>> ---------------------------------
>>>>>>
>>>>>> There is on other quirk too:
>>>>>>  
>>>>>> ....
>>>>>>       'libedif.so' ⎕fx 'edif2'
>>>>>> edif2
>>>>>>       'libedif.so' ⎕fx 'edif2'
>>>>>> edif2
>>>>>>       )off
>>>>>> double free or corruption (fasttop)
>>>>>> Abgebrochen (Speicherabzug geschrieben) [segmentation fault]
>>>>>>
>>>>>> Best regards,
>>>>>> Hans-Peter
>>>>>>
>>>>>>
>>>>>> Am 18.08.2018 um 02:39 schrieb Chris Moller:
>>>>>>>
>>>>>>> I can't make it fail, but I'll look closer in the morning. 
>>>>>>>
>>>>>>> Is there any chance you have multiple APL processes running
>>>>>>> concurrently? Apparently, that causes problems I hadn't caught
>>>>>>> before.
>>>>>>>
>>>>>>>
>>>>>>> Chris
>>>>>>>
>>>>>>>
>>>>>>> On 17/08/18 17:14, Hans-Peter Sorge wrote:
>>>>>>>>
>>>>>>>> Hello Chris,
>>>>>>>>
>>>>>>>> edif2 blocks the apl session again.
>>>>>>>>
>>>>>>>> edif: latest git.
>>>>>>>>
>>>>>>>> apl:  1069M
>>>>>>>>
>>>>>>>> Best Regards,
>>>>>>>>
>>>>>>>> Hans-Peter
>>>>>>>>
>>>>>>>>
>>>>>>>> Am 16.08.2018 um 21:31 schrieb Chris Moller:
>>>>>>>>>
>>>>>>>>> Not that I expected otherwise, but edif and edif2 still work
>>>>>>>>> as expected.
>>>>>>>>>
>>>>>>>>> cm
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 16/08/18 15:14, Juergen Sauermann wrote:
>>>>>>>>>> Hi Hans-Peter,
>>>>>>>>>>
>>>>>>>>>> thanks, hopefully fixed in *SVN 1069*.
>>>>>>>>>>
>>>>>>>>>> Best Regards,
>>>>>>>>>> /// Jürgen
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 08/16/2018 07:29 PM, Hans-Peter Sorge wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> The ⎕IO bug  is back.
>>>>>>>>>>>
>>>>>>>>>>> (note: ⎕IO ←→ 0 seems to be set to 0 using edif2)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>       ∇qio_test[⎕]∇
>>>>>>>>>>>
>>>>>>>>>>>     ∇
>>>>>>>>>>> [0]   qio_test
>>>>>>>>>>> [1]   ⎕IO
>>>>>>>>>>>     ∇
>>>>>>>>>>>  
>>>>>>>>>>>
>>>>>>>>>>>       ⎕IO←1
>>>>>>>>>>>       ⎕IO
>>>>>>>>>>> 1
>>>>>>>>>>>             qio_test
>>>>>>>>>>> 1
>>>>>>>>>>>             ⍎¨ 'qio_test' 'qio_test'
>>>>>>>>>>> 1
>>>>>>>>>>> 1
>>>>>>>>>>>
>>>>>>>>>>>       ⎕IO←0
>>>>>>>>>>>
>>>>>>>>>>>       ⎕IO
>>>>>>>>>>>
>>>>>>>>>>> 0
>>>>>>>>>>>
>>>>>>>>>>>             qio_test
>>>>>>>>>>> 0
>>>>>>>>>>>             ⍎¨ 'qio_test' 'qio_test'
>>>>>>>>>>> 1
>>>>>>>>>>> 1
>>>>>>>>>>>
>>>>>>>>>>> Greetings
>>>>>>>>>>>
>>>>>>>>>>> Hans-Peter
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Am 14.08.2018 um 18:17 schrieb Chris Moller:
>>>>>>>>>>>>
>>>>>>>>>>>> I just committed a minor patch to edif, fixing a relatively
>>>>>>>>>>>> low probability bug involving a possible message queue name
>>>>>>>>>>>> collision if you have two or more APL sessions open
>>>>>>>>>>>> simultaneously.
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/ChrisMoller/edif
>>>>>>>>>>>>
>>>>>>>>>>>> --cm
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to