Comments (4)
There are several related problems here.
The reason "receptor status" failed is that it has to start an ephemeral node to communicate with the Receptor mesh (problem 1), so it tried to store its manifest data under /var/lib/receptor
, and did not have permission to to so (problem 2). After this failure, it printed a traceback instead of a nicely-formatted error message (problem 3), and while it was doing this, the exception handler itself generated another exception (problem 4), which was then printed as a traceback instead of a nicely-formatted error message (problem 3 again).
Taking these problems one at a time:
- Problem 1 will be solved if and when ansible/receptor#208 is implemented. Until then, we just have to live with ephemeral nodes.
- Problem 2 can be solved by giving your uid access to
/var/lib/receptor
, passing a-d /whatever/dir
argument, or by editing/etc/receptor/receptor.conf
to specify a different directory (I use/tmp/receptor
). - Problem 3 probably requires a top-down rethink of how we handle error conditions in Receptor, or if we can't get that done, maybe at least a global exception handler with better default behavior. Also, I'll just mention that the whole concept of exception handling in Python asyncio in general, and Receptor in particular, is a maze of twisty little passages, all different.
- Problem 4 can probably be fixed by putting the Controller constructor call outside the try..finally block in entrypoints.py.
@elyezer, can you clarify which of these problems you mean for this issue card to track?
from python-receptor.
@ghjm it seems that problem 3, maybe also 4, would be a great candidate here. Usually it is not a great experience to try things and get all these stacktraces as the output.
About problem 2, we have a separate issue ansible/receptor#195.
from python-receptor.
@elyezer That's great, I hadn't seen #195 and we do need an issue to track problem 3. Can you edit the title of this to something like "Receptor prints Python tracebacks when it ought to print human-friendly error messages" ?
from python-receptor.
@ghjm sure thing, I will edit a bit the description to reflect the intents here.
from python-receptor.
Related Issues (20)
- Receptor exits with zero when unable to listen
- Wrong error message when incorrect --listen specified
- KeyError: 'ws_extra_headers' in Receptor 0.6 HOT 2
- Need for HTTP proxy support HOT 13
- Receptor doesn't fail gracefully when the data directory is not writable HOT 1
- Better CLI usage information output
- Use a different library for websockets connections HOT 2
- Write docs for end-user usage
- part of nodes gets disconnected (and not reconnects) when running big stresstest HOT 10
- Unicode 'invalid start byte' error sometimes HOT 3
- Connection manifest will drop connections after 24 hours HOT 2
- Proposal: Replace ephemeral nodes with a unix socket HOT 2
- Receptor ping --count 0 implies --delay 0 HOT 4
- Add a keepalive or ping/pong to the websocket connection HOT 4
- Worker.unregister() calls receptor.remove_connection() even if the remote node was not registered HOT 1
- Nodes should always advertise after seeing a new epoch
- Response registry is not persisted to disk
- Receptor can be run with nonexistent config specified HOT 1
- Unable to install/configure receptor plugin because of package dependency issue.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from python-receptor.