-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Daemon should have been opt in, not opt out with --no-daemon, add config opt out in turbo.json #3455
Comments
We're about to rework the messaging around daemon so it will no longer be as visible. cc @anthonyshew Is the noise of the daemon errors the primary thing you're trying to avoid? |
@chris-olszewski Not completely the noise. I'd like to run I keep trying the daemon and it does not work on my mono-repo. It doesn't cache as it should and I don't have the time to troubleshoot it. I don't have the time to give an example mono-repo so you can see it. Running with |
Also, on Windows it leaves me with directories I can't delete without killing turbo.exe. And sometimes even after killing turbo.exe the directories still can't be deleted even by an admin. I put |
I can confirm - I also experience systematic problems with In my view, as a consumer you don't have to know or note these internal hiccups in order to use the tool "as is", and "as is" should better be configured to work frictionlessly from the get go. This is not to discourage or insult anybody working on the tool, nothing like that. I am just wondering why it is the way it is, and if we could do anything about it. |
I started seeing the
Nothing helped. I also note that the temporary files referenced in the output don't seem to change even though I deleted the directory. A different directory name than
Output from
It also seems that
|
There are likely many daemons running on your development machine. The only way Turborepo's is different is that you know about it. We're working towards our daemon becoming properly "invisible" like most other daemons. Please open an issue if your daemon is being problematic. |
Sorry, but this is a terrible justification. And a terrible solution. You basically saying - we do it because everyone is doing it and we gonna make it even more hidden for you. Realworld case — once we've spent the whole working day trying to resolve weird critical bug in our system. Until we found that some background daemon (hidden from us) silently messed up our files. You cater to professional user, you should make things explicit rather than implicit. |
@aristofun, my explanation was moreso context for folks who aren't aware of the various background operations that are running on their machines. You're correct that the goal is ensure that the daemon is stable so that folks aren't bothered by errors coming from it, similar to the many other daemons that help developers every day.
When you say "real world case", do you mean that this is something that happened with the Turborepo daemon? If so, can you open an issue to describe the problem so we can address it? We definitely had some instability in the past around the daemon and are now under the impression that we've resolved those issues. Also, we're working towards auditing the flags, environment variables, and |
I've been experiencing some sort of leak in the daemon causing it to peg a CPU core at 100% after some builds. I haven't been able to track down why this may be happening so not sure if it's worth opening an issue for that, but in the meantime I came up with this to always run without the daemon: function turbo() { command turbo "$@" --no-daemon; } (add to your |
Just hit this as well. Looks like it's looping on calling |
@jjhuff interesting... I'm using turbo with pnpm |
Hi @jjhuff, could you send over the logs from your daemon? You should be able to see them by running |
I've seen it several times, I killed a 100% CPU turbo daemon just an hour ago. That's with pnpm. Will check the logs and the status next time it happens (seems to happen at least once a week). |
@NicholasLYang
|
…8058) ### Description - move the debouncer to its own module so that it is reusable - apply the debouncer to package discovery - make package discovery async so it doesn't block the file watching channel ### Testing Instructions Existing test suite. Fixes #3455 Closes TURBO-2909 --------- Co-authored-by: Greg Soltis <Greg Soltis> Co-authored-by: Alexander Lyon <[email protected]>
I have experienced significant speed up using the Daemon. With the daemon - under 1s - without the daemon - around 10 seconds. So I wanted to get things set up seamlessly.. the problem I have experienced is with yarn v4 being unable to switch to a different version of turbo:
I couldn't find any documentation for The trouble with yarn v4 is that pre-install runs after linking and there is no pre-link lifecycle hook (yarnpkg/berry#5437). I even tried writing a plugin, but it seems yarn doesn't expose a way to make a plugin that works on install, pre linking and causes yarn to wait (I got validate workspace to kick off the command before linking, but then yarn doesn't wait :/). Maybe someone has a solution for this? Another problem I got was that sometimes the turbo daemon clean would error - in my case the daemon was not running and this directory was already deleted, but I got this error:
so I also had to make the clean script ignore errors. I also thought - lets start the daemon in postinstall.. but with both concurrently and npm-run-all it seems it would wait on Maybe this problem with locks on running processes only affects windows, but I really don't see how daemon is usable by people :/ |
…ercel#8058) ### Description - move the debouncer to its own module so that it is reusable - apply the debouncer to package discovery - make package discovery async so it doesn't block the file watching channel ### Testing Instructions Existing test suite. Fixes vercel#3455 Closes TURBO-2909 --------- Co-authored-by: Greg Soltis <Greg Soltis> Co-authored-by: Alexander Lyon <[email protected]>
I'd also like a way to opt out easily via config. I do think it's true that many people run many daemons without being aware of it, but I think it's paternalistic to use that as a justification. I think many folks run background processes as a side effect of running an IDE, but the IDE can shut those down when it exits. Take TypeScript as an example. Running What's missing and intrusive about the Turbo daemon is that it starts as a side effect of simply running That said, it's actually fine if this is really what you think is the best user experience. It's certainly possible to pass So while I agree with voices above that think implicitly running the daemon by default is not a great choice, I can empathize with it and work around it. But my actual feature request would be to enable a I'm a library maintainer and I'd like to use Turbo in my libraries, but I don't want to start daemons on contributor machines without their knowledge. If they choose to engage with Turbo via a language server for integration in their IDE that's great. But I'd like them to be able to run |
Addressed in #8728. |
This comment was marked as outdated.
This comment was marked as outdated.
Oops, thank you! Edited mine. |
Which project is this feature idea for?
Turborepo
Describe the feature you'd like to request
Add config opt out in turbo.json
Describe the solution you'd like
A config option to disable by default.
Describe alternatives you've considered
I run with
--no-daemon
as an alt. This is due to the daemon not really working correctly. It constantly spits out erroneous errors, specifically error Unknown. It clutters the output with confusing messages and doesn't improve performance. I also don't need remote caching. As mentioned the daemon should be opt in and configure, not opt out.The text was updated successfully, but these errors were encountered: