Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix exception tracebacks #85

Open
tuetschek opened this issue Oct 27, 2014 · 4 comments
Open

Fix exception tracebacks #85

tuetschek opened this issue Oct 27, 2014 · 4 comments

Comments

@tuetschek
Copy link
Member

When Alex crashes, there's usually no detailed information about the exception in the logs.

If an exception occurs in DM, it is caught here and passed on to the logs here. The code should print a traceback, but this tends to be None. Anyone knows why and/or how to solve this?

@ticcky
Copy link
Contributor

ticcky commented Oct 28, 2014

I think I figured out the problem. It is this code: https://github.com/UFAL-DSG/alex/blob/master/alex/utils/mproc.py#L84-L111 Which runs the exception handler in a different thread, therefore looses the stack and traceback cannot print it.

Filip says:
"The logging used to be synchronous. The issue is that logging to a NFS file system causes delays (when NFS is under a load writes can wait up to 1 second). This async mess is just was hot fix to existing problem of synchronous logging in original processes.

Therefore, there is a need for a separate logging process. Ideally, equivalent to other processes such as VAD, ASR, SLU, ...."

=> Let's implement the logging process.

@tuetschek
Copy link
Member Author

Well, actually that would be the solution to messed-up logs, not exception tracebacks ;-). This means we must implement the logging process and move traceback handling to the other processes (the ready traceback must be passed to the logger, the logger won't be able to create it by itself).

@jurcicek
Copy link
Member

When we talk about processes in Alex,

I think that there should be one more, for sending messages between
processes.

Now it is implemented using pipes, the connections structure is roughly
everyone with everyone. It seems to me that a star like structure would be
more appropriate.

Best regards,
Filip Jurcicek


Work tel. (CZ): +420221914402
Personal tel. (CZ): +420777805048
Skype: bozskyfilip

http://ufal.mff.cuni.cz/filip-jurcicek
http://ufal.mff.cuni.cz/grants

On 28 October 2014 13:15, Lukas Zilka [email protected] wrote:

I think I figured out the problem. It is this code:
https://github.com/UFAL-DSG/alex/blob/master/alex/utils/mproc.py#L84-L111
Which runs the exception handler in a different thread, therefore looses
the stack and traceback cannot print it.

Filip says:
"The logging used to be synchronous. The issue is that logging to a NFS
file system causes delays (when NFS is under a load writes can wait up to 1
second). This async mess is just was hot fix to existing problem of
synchronous logging in original processes.

Therefore, there is a need for a separate logging process. Ideally,
equivalent to other processes such as VAD, ASR, SLU, ...."

=> Let's implement the logging process.


Reply to this email directly or view it on GitHub
#85 (comment).

@tuetschek
Copy link
Member Author

I don't know... wouldn't that create a bottleneck?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants