Jump to content


Photo

Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE


  • Please log in to reply
242 replies to this topic

Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #201 WanWizard

  • PLi® Core member
  • 70,953 posts

+1,835
Excellent

Posted 24 August 2023 - 16:11

What still (and really) bugs me:

 

All recording and streaming happens in threads, which run independently of the reactor main loop.

 

Therefore, anything that does or doesn't happen in those threads will never influence the main loop, and can therefore never trigger a spinner, as that happens when some python process is called by the main loop, and doesn't return control to the main loop within 10 seconds.

 

This is also proven by the fact that if you leave the box on with the spinner running, the box will happily continue to record until you run out of this space.

 

Ergo, something else is blocking, not related to the filepush thread.

 

 

I have a similar situaltion with the Solo 4K icm with the Bluetooth remote: If I zap and quasi immediately after press the power button to put the box in standby, the box sends a CEC command to switch the TV off, and goes into an endless loop which triggers the spinner, the LCD is still showing channel info at this point.
Typically a race condition in an async environment where something happens too early or too large, so something else misses a trigger or something...


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #202 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 25 August 2023 - 10:07

ran a 5 minute strace, afer box got stuck this morning.

don't know what exactly to look for.

it's mostly repeating:

[pid  1530] 10:55:53.097054 ioctl(8, _IOC(_IOC_NONE, 0, 0x22, 0), 0x12) = 0
[pid  1530] 10:55:53.116929 futex(0x343be0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  1530] 10:55:53.117073 futex_time64(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=502132989093597259}, FUTEX_BITSET_MATCH_ANY) = -1 ENOSYS (Function not implemented)
[pid  1530] 10:55:53.117215 futex(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=216911947}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT (Connection timed out)

 

Attached File  strace1.txt   1.73MB   3 downloads

 

maybe I will run enigma2 with strace tonight, to see what happens meanwhile the box gets stuck again.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #203 WanWizard

  • PLi® Core member
  • 70,953 posts

+1,835
Excellent

Posted 25 August 2023 - 11:09

Chances are this is all related to the still ongoing recording(s).

 

If the box hangs on some piece of python doing

while true:
   loop

you won't see much in strace...


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #204 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 25 August 2023 - 11:17

Chances are this is all related to the still ongoing recording(s).

 

If the box hangs on some piece of python doing

while true:
   loop

you won't see much in strace...

I assume, that's what to see in the trace I posted.

But I hope there's something to see just before that loop.
strace won't hurt. just lots of data. the 4TB hdd should be big enough for one night.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #205 littlesat

  • PLi® Core member
  • 57,486 posts

+708
Excellent

Posted 25 August 2023 - 11:41

Are you using a common interface module for encryption?


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #206 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 25 August 2023 - 12:00

Are you using a common interface module for encryption?

I do. CAM 803 from Canal Digitaal. Had the same problem with it predecessor (CAM 701?).

set up CI Assignment, to only use it for CD channels



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #207 littlesat

  • PLi® Core member
  • 57,486 posts

+708
Excellent

Posted 25 August 2023 - 12:19

Can you also retry without the module?

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #208 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 25 August 2023 - 12:41

Can you also retry without the module?

as I can't really provoke the issue... I can try removing it tomorrow night - no important recordings in the night, which would need decryption.
I just check if offline decode works, if so, I can do this night and descramble tomorrow.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #209 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 25 August 2023 - 15:50


I just check if offline decode works, if so, I can do this night and descramble tomorrow.

 

just tested, without CAM inserted I get 0 bytes recordings. so it's a task for tomorrow.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #210 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 26 August 2023 - 09:47

so ran enigma2 with strace (-f -tt). box got stuck at 22:01 yesterday.
debug log +- 10min: Attached File  stb1debuglog14.txt   330.58KB   0 downloads

strace +-10min: https://www.swabian....1strace2.tar.gz

 

there are lots of

<... futex resumed>) = -1 ETIMEDOUT (Connection timed out)

and lots like this
futex_time64(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692993666, tv_nsec=2683117988100586136}, FUTEX_BITSET_MATCH_ANY) = -1 ENOSYS (Function not implemented)


Edited by paneologist, 26 August 2023 - 09:49.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #211 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 27 August 2023 - 10:17

Can you also retry without the module?

box also got stuck this morning with module removed



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #212 WanWizard

  • PLi® Core member
  • 70,953 posts

+1,835
Excellent

Posted 27 August 2023 - 12:26

Question from Erik: can you confirm that when it gets stuck, recordings that are ongoing keep on running (i.e. the TS files continue to increase in size?).

 

If so, that confirms my suspicion that it is not the thread itself that is causing the lock, it is something else that blocks the mainloop.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #213 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 27 August 2023 - 12:41

Question from Erik: can you confirm that when it gets stuck, recordings that are ongoing keep on running (i.e. the TS files continue to increase in size?).

 

If so, that confirms my suspicion that it is not the thread itself that is causing the lock, it is something else that blocks the mainloop.

Yes, recording goes on until I restart the box. so many 8hour+ recordings.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #214 WanWizard

  • PLi® Core member
  • 70,953 posts

+1,835
Excellent

Posted 27 August 2023 - 12:45

Thanks for confirming it.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #215 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 27 August 2023 - 13:57

No problem.

I have two more straces of box getting stuck. didn't look into them yet.

If anyone is interested, I can make them available to download.



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #216 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 27 August 2023 - 14:09

here's one: the full strace (345MiB uncompressed), box ran about 5 hours before getting stuck. only recording and starting epgrefresh, no user inputs.

 

 

this file is garbage. somehow the box shut itself down at 4:15 !?

2023-08-27T04:15:05+02:00 stb1.swabian.net init: Switching to runlevel: 0

how can that be? the box is not supposed to ever shutdown - only nomal standby. epgrefresh is also set up to "never" shutdown.

 

Attached File  stb1debuglog15.txt   48.29KB   0 downloads


Edited by paneologist, 27 August 2023 - 14:18.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #217 paneologist

  • Senior Member
  • 129 posts

+1
Neutral

Posted 27 August 2023 - 15:50

box got just stuck, trying to start playback of a recording.

box was in timeshift, but no signs of a record stopping in the debug log:

2023-08-27T16:41:56+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  ip  for adapter:  eth0
2023-08-27T16:41:56+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  netmask  for adapter:  eth0
2023-08-27T16:42:11+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  ip  for adapter:  eth0
2023-08-27T16:42:11+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  netmask  for adapter:  eth0
2023-08-27T16:42:14+02:00 stb1.swabian.net enigma2: [RDS] radiotext str: (+++ Merz sieht Deutschland vor großen Herausforderungen)
2023-08-27T16:42:14+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'RdsInfoDisplaySummary'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [ActionMap] Keymap 'OkCancelActions' -> Action = 'ok'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'InfoBarSummary'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'InfoBar'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Parsing embedded skin '<embedded-in-Screensaver>'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen '<embedded-in-Screensaver>', position=(0, 0), size=(1920 x 1080) for module 'Screensaver'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Parsing embedded skin '<embedded-in-HideVBILine>'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen '<embedded-in-HideVBILine>', position=(0, 0), size=(1920 x 7) for module 'HideVBILine'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'HideVBILine'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: resolved to PLAY
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] unpause
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen 'VideoMode', position=(127, 67), size=(600 x 75) for module 'VideoMode'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen 'PVRState', position=(192, 172), size=(225 x 45) for module 'PVRState'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [HelpActionMap] removed duplicity: InfobarSeekActions ('jumpPreviousMark', 'Jump to previous marked position')
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [HelpActionMap] removed duplicity: InfobarSeekActions ('jumpNextMark', 'Jump to next marked position')
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: RemovePopup, id = ZapError
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Navigation] playing:  1:0:0:0:0:0:0:0:0:0:/media/hdd/movie/20230824 2125 - NGC HD - Air Crash Investigation.ts
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eFilePushThreadRecorder] stopping thread
2023-08-27T16:42:26+02:00 stb1.swabian.net enigma2: [gRC] main thread is non-idle! display spinner!

strace available as well

 

(by the way, disabled deep standby by change in /etc/rc0.d/S90halt - box will just reboot.)
 



Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #218 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 27 August 2023 - 16:13

ran a 5 minute strace, afer box got stuck this morning.

don't know what exactly to look for.

it's mostly repeating:

[pid  1530] 10:55:53.097054 ioctl(8, _IOC(_IOC_NONE, 0, 0x22, 0), 0x12) = 0
[pid  1530] 10:55:53.116929 futex(0x343be0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  1530] 10:55:53.117073 futex_time64(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=502132989093597259}, FUTEX_BITSET_MATCH_ANY) = -1 ENOSYS (Function not implemented)
[pid  1530] 10:55:53.117215 futex(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=216911947}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT (Connection timed out)

attachicon.gif strace1.txt

 

maybe I will run enigma2 with strace tonight, to see what happens meanwhile the box gets stuck again.

 

I will have look. Please in the future exclude calls to futex (-e !futex) because they tend to fill up the log, without adding any information.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #219 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 27 August 2023 - 16:19

ran a 5 minute strace, afer box got stuck this morning.

don't know what exactly to look for.

it's mostly repeating:

[pid  1530] 10:55:53.097054 ioctl(8, _IOC(_IOC_NONE, 0, 0x22, 0), 0x12) = 0
[pid  1530] 10:55:53.116929 futex(0x343be0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  1530] 10:55:53.117073 futex_time64(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=502132989093597259}, FUTEX_BITSET_MATCH_ANY) = -1 ENOSYS (Function not implemented)
[pid  1530] 10:55:53.117215 futex(0x343c20, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1692953753, tv_nsec=216911947}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT (Connection timed out)

attachicon.gif strace1.txt

 

maybe I will run enigma2 with strace tonight, to see what happens meanwhile the box gets stuck again.

 

Interessing that in this trace, there are no reads or writes whatsoever. There are some poll()'s, but I can't relate them to filepush.c.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: Enigma 2 freezes "[eFilePushThreadRecorder] thread could not be stopped!" VU+ DUO 4K SE #220 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 27 August 2023 - 16:20

box got just stuck, trying to start playback of a recording.
box was in timeshift, but no signs of a record stopping in the debug log:

2023-08-27T16:41:56+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  ip  for adapter:  eth0
2023-08-27T16:41:56+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  netmask  for adapter:  eth0
2023-08-27T16:42:11+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  ip  for adapter:  eth0
2023-08-27T16:42:11+02:00 stb1.swabian.net enigma2: [Network] Getting attribute:  netmask  for adapter:  eth0
2023-08-27T16:42:14+02:00 stb1.swabian.net enigma2: [RDS] radiotext str: (+++ Merz sieht Deutschland vor großen Herausforderungen)
2023-08-27T16:42:14+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'RdsInfoDisplaySummary'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [ActionMap] Keymap 'OkCancelActions' -> Action = 'ok'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'InfoBarSummary'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'InfoBar'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] timeshift
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Parsing embedded skin '<embedded-in-Screensaver>'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen '<embedded-in-Screensaver>', position=(0, 0), size=(1920 x 1080) for module 'Screensaver'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Parsing embedded skin '<embedded-in-HideVBILine>'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen '<embedded-in-HideVBILine>', position=(0, 0), size=(1920 x 7) for module 'HideVBILine'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Screen] Showing screen 'HideVBILine'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: resolved to PLAY
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eDVBServicePlay] unpause
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen 'VideoMode', position=(127, 67), size=(600 x 75) for module 'VideoMode'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Skin] Processing screen 'PVRState', position=(192, 172), size=(225 x 45) for module 'PVRState'.
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [HelpActionMap] removed duplicity: InfobarSeekActions ('jumpPreviousMark', 'Jump to previous marked position')
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [HelpActionMap] removed duplicity: InfobarSeekActions ('jumpNextMark', 'Jump to next marked position')
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: RemovePopup, id = ZapError
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [Navigation] playing:  1:0:0:0:0:0:0:0:0:0:/media/hdd/movie/20230824 2125 - NGC HD - Air Crash Investigation.ts
2023-08-27T16:42:24+02:00 stb1.swabian.net enigma2: [eFilePushThreadRecorder] stopping thread
2023-08-27T16:42:26+02:00 stb1.swabian.net enigma2: [gRC] main thread is non-idle! display spinner!

strace available as well
(by the way, disabled deep standby by change in /etc/rc0.d/S90halt - box will just reboot.)

Can you change the setting "show zap errors" to "disable" (just to check)?

 

Also can you, when this happens, login to the receiver and check whether enigma is waiting for the buffer cache to flush?

You can do that by writing a chunk of data to the same disk (local, afaik) as enigma is writing it's recordings to and see if it returns in a reasonable amount of time. Something like

 

dd count=1024 if=/dev/zero of=/hdd/testfile status=progress; sync

 

You can remove the file afterwards. I am suspecting harddisk can't keep up with the data, for whatever reason, data is filling memory, and at some moment, the kernel decides there is no more memory available for buffering and blocks all writing threads until enough data has been written and cleared from the buffer cache.

 

That could also explain why we (Wanwizard and I) are not experiencing this, as we're recording to a NAS (using NFS).

 

There is also another difference between recording on local disk and a NAS: signals can interrupt I/O system calls and if that happens, the calling process gets a status "this system call has been interrupted" (EINTR) and how much of the data has actually been written or received. The process can then handle the signal and continue where it left. The premisse in the code is that this works. There is a caveat though. For devices that are deemed to be always available and quick to write (and a local disk is one of them), the I/O system calls cannot be interrupted. Not even a ^C or sigterm or sigkill will abort the system call. That means the code does not 100% works like it's designed; as long as data is ready to write (and not written), the thread will not gain control, it will remain in the system call until it's finished, however many signals are sent. As most of the time, a write system call to harddisk is quick to return, that is not necessarily a problem, but if the disk is slow, for whatever reason, the system call can be long to complete and maybe, just maybe, a blocked signal can get lost in that situation.

 

There are a few other paths I am exploring here:

 

- it's very interesting that the read() gets interrupted many times, even though all signals besides sigusr1 are blocked. What is that signal we can't block (as system calls can only be interrupted by signals). If that is a sigusr1 from another source (for whatever reason), we can have the situation where one spurious and one proper signal is to be delivered and at that moment the blocking is still active (at the start). Blocked signals always only have one instance queued, so the proper signal might get lost in that case. Maybe we should try using another signal, like sigusr2, as enigma is using sigusr1 at other locations as well. Better be safe than sorry.

- if we really don't get this working, I am willing to try a construction where we're not using signals at all, that is possible.

 

In the meantime I now have an up-and-running OE environment again, so I can try and test some things.


Edited by Erik Slagter, 27 August 2023 - 16:38.

* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.



4 user(s) are reading this topic

0 members, 4 guests, 0 anonymous users