Opened at 2019-02-18T16:30:28Z
Closed at 2019-02-26T20:19:34Z
#2972 closed defect (fixed)
Understanding the behavior of the Magic-Folder frontend by reading the logs is difficult or impossible
Reported by: | exarkun | Owned by: | GitHub <noreply@…> |
---|---|---|---|
Priority: | normal | Milestone: | undecided |
Component: | dev-infrastructure | Version: | 1.12.1 |
Keywords: | logging, magic-folder, review-needed | Cc: | |
Launchpad Bug: |
Description
As a developer, I want to be able to understand the decisions made by and the actions taken by the magic-folder frontend implementation. I want to be able to debug failures in the test suite (unit tests and integration tests), both existing (eg when extending support to a new platform) and new (introduced by other development efforts). I also want to be able to debug failures found in the wild - eg in a Tahoe-LAFS process running on a developer or even end-user machine.
To this end, I want some kind of logs which clearly explain everything Magic-Folder is doing.
The Magic-Folder implementation currently emits some logs. However:
- They are entirely ad hoc. Information is logged if someone felt like logging it at some point. This probably often corresponds to pieces of the implementation that some developer found difficult or that are near a previously fixed bug. The log messages are largely prefixed with "Magic-Folder" but they are otherwise freeform text with no discernable conventions being followed.
- They are only available from the Foolscap log which is often not available. Extracting it requires specialized tools and is a time-sensitive operation (wait an hour and chances are you're not going to be able to get what you want).
- Causal information between events is almost completely lost as the events are flattened into a linear sequence of text events. There's no straightforward way (and sometimes no way at all) to connect two events and say that one caused the other. Therefore, many events end up being completely context-free and therefore almost meaningless (eg - the uploader decided to upload a file? great - but *why*?).
Change History (4)
comment:1 Changed at 2019-02-18T16:30:59Z by exarkun
comment:2 Changed at 2019-02-21T17:41:12Z by exarkun
- Component changed from unknown to dev-infrastructure
- Keywords logging magic-folder added
comment:3 Changed at 2019-02-25T19:06:06Z by exarkun
- Keywords review-needed added
comment:4 Changed at 2019-02-26T20:19:34Z by GitHub <noreply@…>
- Owner set to GitHub <noreply@…>
- Resolution set to fixed
- Status changed from new to closed
In 9cf0096/trunk:
I'm looking at getting Eliot (https://eliot.readthedocs.io/en/1.6.0/index.html) involved to solve these problems.