jens-maus / yam

:mailbox_with_mail: YAM (short for 'Yet Another Mailer') is a MIME-compliant open-source Internet email client written for Amiga-based computer systems (AmigaOS4, AmigaOS3, MorphOS, AROS). It supports POP3, SMTP, TLSv1/SSLv3 connection security, multiple users, multiple identities, PGPv2/v5 encryption, unlimited hierarchical folders, an ARexx interface, etc...
https://yam.ch
GNU General Public License v2.0
61 stars 18 forks source link

YAM 2.10dev (23.02.2019) crashes #677

Closed halle-saale closed 5 years ago

halle-saale commented 5 years ago

Submission type

YAM version 2.10dev from 23.02.2019

Used operating system

Used Amiga system

Amiga 1200 with Blizzard 1230

tboeckel commented 5 years ago

Sorry, but this report does not contain any helpful information. Simply stating "it crashes" is not enough. Please run the usual debugging tools like SegTracker, Enforcer et al and provide a full crashlog.

halle-saale commented 5 years ago

Sorry, for two days I have been trying to create a debug file. Obviously I do something wrong. First I took the developer version, starting it with: YAM DEBUG >RAM:Debug.txt. It creates a file,but it is empty. Then I downloaded the debug version of YAM, repeating the procedure. Again, an empty file. Where is the fault?

raziel- commented 5 years ago

@halle-saale

http://yam.ch/wiki/FAQ/Debugging#BasicsaboutYAMsdebuggingfacilities

halle-saale commented 5 years ago

Sorry, but this does not help. Of course I did read this article first before I ask any questions. And I created debug output for a previous issue. I cannot understand why it does not work now...

javierdlr commented 5 years ago

AFAIK there are 2 version the "normal" (YAM210dev-20190223-AmigaOS4.lha) that you can use from commandline/Shell:

YAM debug

SERVER['Euskalnet', 0051]: +OK Bienvenido al servidor de Correo de Euskalnet CLIENT['Euskalnet', 0016]: USER SERVER['Euskalnet', 0042]: +OK password required for user CLIENT['Euskalnet', 0015]: PASS SERVER['Euskalnet', 0020]: +OK Maildrop ready CLIENT['Euskalnet', 0006]: STAT SERVER['Gmail', 0064]: +OK Gpop ready for requests from 81.33.61.81 t11mb277483725ljj CLIENT['Gmail', 0016]: USER SERVER['Euskalnet', 0009]: +OK 0 0 CLIENT['Euskalnet', 0006]: QUIT SERVER['Gmail', 0015]: +OK send PASS CLIENT['Gmail', 0015]: PASS SERVER['Euskalnet', 0005]: +OK SERVER['Gmail', 0014]: +OK Welcome. CLIENT['Gmail', 0006]: STAT SERVER['Gmail', 0009]: +OK 0 0 CLIENT['Gmail', 0006]: QUIT SERVER['Gmail', 0015]: +OK Farewell ...

And the debug compiled (YAM210dev-20190223-AmigaOS4-debug.lha), that outputs to serial, so if you're using this one, use SASHIMI or a device attached to your serial port to get/see debug output.

halle-saale commented 5 years ago

Thank you. But this is exactly what I wrote. I used the "normal" developer version (for OS3) starting from Shell with the lines written above: YAM DEBUG >RAM:Debug.txt So, please do me a favour and try it exact the same way and tell me, if your file "Debug.txt" is empty or not. Thank you!

javierdlr commented 5 years ago

You're righ just tried the same way you do it and output goes always to Shell/CLI, file is empty:

version YAM file full

YAM 2.10-dev (23-02-2019) Copyright (C) 2000-2019 YAM Open Source Team [OS4/PPC, d4fff6e26]

yam debug >ram:foo.txt

SERVER['Euskalnet', 0051]: +OK Bienvenido al servidor de Correo de Euskalnet CLIENT['Euskalnet', 0016]: USER SERVER['Euskalnet', 0042]: +OK password required for user CLIENT['Euskalnet', 0015]: PASS SERVER['Euskalnet', 0020]: +OK Maildrop ready CLIENT['Euskalnet', 0006]: STAT SERVER['Gmail', 0063]: +OK Gpop ready for requests from 81.33.61.81 a4mb186069378lfh CLIENT['Gmail', 0016]: USER SERVER['Euskalnet', 0009]: +OK 0 0 CLIENT['Euskalnet', 0006]: QUIT SERVER['Gmail', 0015]: +OK send PASS CLIENT['Gmail', 0015]: PASS SERVER['Euskalnet', 0005]: +OK SERVER['Gmail', 0014]: +OK Welcome. CLIENT['Gmail', 0006]: STAT SERVER['Gmail', 0009]: +OK 0 0 CLIENT['Gmail', 0006]: QUIT SERVER['Gmail', 0015]: +OK Farewell. ...

tboeckel commented 5 years ago

It seems there is a lots of confusion going on here.

The DEBUG option for the command line is meant to debug the network traffic between YAM and the mail server (POP3 and SMTP). Each transaction will be printed out to the console and can be redirected to a file. This option is always available, even in the release builds.

The debug builds contain additional code and additional informations for real debugging purpose. The additional code will produce the debug log, according to the configuration through ENV:yamdebug. The additional information embedded in the YAM executable will be used by debugging tools like SegTracker, Enforcer, MuForce, CyberGuard, MungWall, etc regardless of any ENV:yamdebug configuration. These tools will use these additional informations to show where exactly a fault happened in the code (file name plus line number).

Now back to this issue. All I want is to reproduce the crash with the YAM debug build and tools like SegTracker and Enforcer/CyberGuard/MuForce. The output must be captured with Sashimi or a second machine connected to the serial terminal. No special ENV:yamdebug configuration nor the DEBUG command line option is required as I have no clue where the crash happening at all. I just need to know where the crash eventually happens.

raziel- commented 5 years ago

Which is exactly what is covered in

  1. a full blown debugging log containing lots of internal stuff in the link i posted earlier... just sayin`
javierdlr commented 5 years ago

Ok, understood, but why when I do: "yam debug >ram:foo.txt" it still prints to Shell/CLi and ram:foo.txt is empty.

halle-saale commented 5 years ago

Just like javierdlr, I also wonder why my debug file is empty. Something is wrong there. And please apologize, but I also do not understand why it is so complicated to produce appropriate debug output although there already is a debug version of YAM. For you it might be simple but for me, a user, this is rather tricky. But there is one thing I can definitely tell you: Before I installed the YAM version from February I used the version from November. And that worked. Maybe you can provide this version again, unlocked, for testing purposes. In my opinion this seems to be the easiest way as a first step.

tboeckel commented 5 years ago

Creating a network transfer log is absolutely not complicated. Just invoke YAM like this:

YAM netlog >outputfile

That's it. I just verified this is working as expected. NETLOG is an alias of DEBUG. But to let the output file have content you must transfer mails. Without a mail transfer the NETLOG option will not output a single line. If you just start YAM, play around a bit without any network transfer and quit YAM again the file will of course be empty, because the NETLOG option will cause YAM to print out the desired information during mail up- or downloads only.

But this is not was I asked for. According to your original post the crash does not happen during network transfers, but when reading (I think "run" was supposed to be "read") mails. Hence the NETLOG option is of absolutely no help and insisting on using it is superfluous. All I ask of you is to reproduce the crash when using the debug version without any specific contents of ENV:yamdebug but with the mentioned debug tools running in the background. I need the output of these debug tools when the crash happens. YAM's debug output is helpful only when one knows where to look for an issue, but currently I have no idea yet and I am not able to reproduce the crash myself. Hence you must reproduce it and provide the information I ask for.

halle-saale commented 5 years ago

Thanks. I do not know if I did it right but this is my attempt of producing a debug-file. debug2.log

tboeckel commented 5 years ago

Well, if I had told you to produce a YAM debug log, then this would be a suitable file. But you are complaining about a crash and there is absolutely nothing about a crash in that log. So, sorry, no, this is not the log I was asking for.

I was asking for a crashlog. A log file that contains output from the above mentioned debugging tools. This log might contain the YAM debug output as your log does, but it must include informations about a crash aswell. And your log is lacking these information. Without these informations I am not able to help you.

So once again: run the debugging tools, run YAM, make YAM crash, capture all the output, especially the output regarding the crash. That's it. Nothing more, nothing less. I am not interested in any logged network traffic. I am interested in crash information only.

jerseywurzel commented 5 years ago

Please see issue #676 which might be related

tboeckel commented 5 years ago

This brings us back to this question: what does "chosse a folder to run mails" mean? I consider this as "reading mail". If that is the case then AmiSSL is out of scope.

halle-saale commented 5 years ago

I was not complaining, I was reporting a bug. I guessed you are interested in that fact. So please calm down. Yesterday in my spare time I spend the whole evening downloading, installing and using Sashimi, YAM-Debug etc. Besides, I tried to exactly do what you were asking for. Due to lack of precise instructions (start Sashimi with the arguments "......", then do that etc.) I used the instructions given on the YAM FAQs website: 1.) setenv yamdebug 2.) run <>nil: sashimi on noprompt >debug2.log 3.) Start YAM.debug 4.) Doing all the steps until it crashed 5.) Uploaded the file

No problem, if I did anything wrong. Just tell me at which point and how I can change it. Thanks!

halle-saale commented 5 years ago

YAM loads and starts as expected. I can see all my folders. Then I choose the folder "incoming" and YAM automatically selects a mail (displayed as unread because it is bold) trying to read and open it. And then the Guru appears. I do not know why. Maybe because it is a special mail. Unfortunately I am not sitting in front of my Amiga but I guess it is a mail including an attachment.

tboeckel commented 5 years ago

You are starting Sashimi and the YAM debug build. This is correct. But your approach is lacking the debugging tools: SegTracker and one of Enforcer or CyberGuard or MuForce. This is something that I have asked you for 4 times already by now. Without the output of these tools there will be no crash log, just a plain crash without any further detailed information.

halle-saale commented 5 years ago

As I have written before, I am just an user. I have absolutely no experiences with any kind of debugging or memory tools etc. So, without detailed instructions I had to "play around" with MuForce, Sashimi and so on. I never used them before. Sorry, that it took so much time. This is another attempt of producing a log file using the mentioned tools. If it is not sufficient, then please help with the arguments. debug3.log

And please do highlight the line "Other required third-party debug tools" on the FAQ/Debugging website. It is so easy to overlook.

tboeckel commented 5 years ago

There is nothing else to do than just to run these tools. Although they offer lots of options the default settings usually are sufficient for creating a crash log. This is why we included this paragraph in YAM's debugging FAQ:

Usually no special options need to be specified to get a usable output in case of a crash. The only important point is to start those tools before running YAM.

What is still missing is the information provided by SegTracker, which you definitely forgot to run before reproducing the crash. Only the combination of SegTracker + MuForce + the crash itself will produce a crash log which can be used to trace back the location of the crash in YAM's source code.

tboeckel commented 5 years ago

If you think the crash might be related to a specific mail and the embedded read pane causes an immediate crash because that specific mail will always be displayed by default, then you might want to disable the embedded read pane for a quick test and read that mail in a separate window. To disable it just locate the setting "EmbeddingReadPane" in YAM's ".config" file and change it to either "false" or "no" instead of "true" or "yes" using a simple text editor. Then YAM's main window will look a little bit different, but reading mails will no happen immediately, but only after double clicking a mail. Reenabling the embedded read pane can be done either by reverting the modification in the file, or via the config window (Look&Feel -> Main window -> Embedded read pane).

halle-saale commented 5 years ago

Thanks for the hints. I changed YAM's config-file as you described. And it is as I wrote: The error applies to mails which still have not been read. I can open mails which I did already read. And here is another log-file. It is not substantially bigger although I did run 1.) SegTracker then 2.) MuForce and then 3.) Sashimi. Does it help anyway?

debug4.log

tboeckel commented 5 years ago

This crash finally looks familiar and most probably is solved already. In fact it is bug in TextEditor.mcc and not in YAM. A fixed version can be found here: https://github.com/amiga-mui/texteditor/issues/23#issuecomment-472300662 Unpack the archive, rename "TextEditor.mcc.debug" to "TextEditor.mcc" and copy it to MUI:Libs/mui. Then reboot the machine and try to reproduce the crash with YAM. If the crash still does happen, then I need a crash log like the last one with this replaced build of TextEditor.mcc.

halle-saale commented 5 years ago

That has been the solution! Thank you! Great that it has been quite simple. And now I know how to properly report future bugs. One last question if you allow: I tried a little bit with the different themes because using icons slow my Amiga 1200 with Blizzard 1230 very down. It takes a lot time to load. So, lately I used "MagicWB" and tried to set it to "empty". I did so and saved. But next time YAM again used the MagicWB theme. Can you reproduce it?

tboeckel commented 5 years ago

Have you activated the new theme or just clicked on its entry in the list of available themes? Themes must be activated first, then the configuration must be saved and finally YAM must be restarted. Otherwise nothing will change.