Re: Re: quit files

"[email protected] [hercules-390]" <[email protected]>
Newsgroups gmane.comp.emulators.hercules390.general
Message-ID <[email protected]>
Hi Joe 

 thanks again. As Ivan already said, that code _is_ syntactically correct. Of course one can make it safer, but the root cause for our current problem isn't in this code. Why? Because the other occurance of what I believe is the same bug doesn't show up during Hercules termination, but during normal operations.
 

 You will be able to reproduce this easily by bringing TK4- up with SDL Hyperion binaries (the older of the two I provided links for, i.e. those without the kludge), then telnet (not tn3270) to port 33351, logon as HERC01 or whoever, and enter HELP ABEND after the READY prompt (or any other command producing much output). Doing this often enough will eventually end up with Abend S622, or simple hangs, or TP Abends or any combination of those. Basically, those show behind the scenes the same characteristic as the segfaults you are seeing after "quit", and it is the same range of devices: 680-68B, the async TTYs and 2741s.
 

 However, it's absolutely not clear yet, whether those device implementations are the culprit. They may be, but then there is the channel implementation under suspicion too, and, until yesterday, even TCAM was. However, the latter can now most probably be dropped from the list, as it clearly has no saying when Hercules is shot out of the sky using quit.
 

 Cheers
 Jürgen

---In [email protected], <joemonk64@...> wrote :

 So i've traced the release_config code in config.c (because debugs show the code entering HDL: release config) as far as detach_devblk in config.c down to this...
 

  /* Free the argv array */
 

     for (i = 0; i < dev->argc; i++)
 

         if (dev->argv[i])
 

             free(dev->argv[i]);
 

     if (dev->argv)
 

         free(dev->argv);
 


 How can you have an array item (argv[i]) referenced by a non-array statement (argv)? Plus, when the loop falls thru because i = argc, then what happens? Plus, dont you need braces on the for loop like this?
 

  /* Free the argv array */
 

     for (i = 0; i < dev->argc; i++)
       {
 

         if (dev->argv[i])
 

             free(dev->argv[i]);
       }
 

     if (dev->argv)
 

         free(dev->argv);


 

 Joe





 On Sun, Jun 23, 2019 at 6:29 AM winkelmann@... mailto:winkelmann@... [hercules-390] <[email protected] mailto:[email protected]> wrote:

   Thanks Joe, yes, I know. That‘s the particular reason why I think it‘s that other bug I‘m chasing. Cheers, Jürgen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.