1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-15 16:43:44 -05:00
Commit graph

74 commits

Author SHA1 Message Date
Andreu Botella
5c5f4ea1d6
fix(workers): Don't panic when a worker's parent thread stops running (#12156)
This panic could happen in the following cases:

- A non-fatal error being thrown from a worker, that doesn't terminate
  the worker's execution, but propagates to the main thread without
  being handled, and makes the main thread terminate.
- A nested worker being alive while its parent worker gets terminated.
- A race condition if the main event loop terminates the worker as part
  of its last task, but the worker doesn't fully terminate before the
  main event loop stops running.

This panic happens because a worker's event loop should have pending ops
as long as the worker isn't closed or terminated – but if an event loop
finishes running while it has living workers, its associated
`WorkerThread` structs will be dropped, closing the channels that keep
those ops pending.

This change adds a `Drop` implementation to `WorkerThread`, which
terminates the worker without waiting for a response. This fixes the
panic, and makes it so nested workers are automatically terminated once
any of their ancestors is closed or terminated.

This change also refactors a worker's termination code into a
`WorkerThread::terminate()` method.

Closes #11342.

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-09-22 18:02:15 +02:00
David Sherret
0f23d92601
chore(tests): windows pty tests (#12091) 2021-09-20 22:15:44 -04:00
Nayeem Rahman
75ca013f07
fix(cli/fmt_errors): Abbreviate long data URLs in stack traces (#12127)
Co-authored-by: Mike White <mike.white@auctane.com>
2021-09-18 15:40:04 +02:00
Kitson Kelly
99de9eb4c2
fix(cli): don't ignore diagnostics about for await (#12116)
Fixes #12115
2021-09-17 16:54:52 +10:00
Satya Rohith
badc87e657
chore(lsp): use pretty_assertions in e2e tests (#12083) 2021-09-15 16:04:17 +05:30
Satya Rohith
bb7ee4f445
feat(lsp): ignore specific lint for entire file (#12023) 2021-09-14 17:46:51 +05:30
Bartek Iwańczuk
0dbeb774ba
feat(fmt): add support for configuration file (#11944)
This commit adds support for configuration file for "deno fmt"
subcommand. It is also respected by LSP when formatting
files.

Example configuration:
{
    "fmt": {
        "files": {
            "include": ["src/"],
            "exclude": ["src/testdata/"]
        },
        "options": {
            "useTabs": true,
            "lineWidth": 80,
            "indentWidth": 4,
            "singleQuote": true,
            "textWrap": "preserve"
        }
    }
}
2021-09-13 20:19:10 +02:00
Satya Rohith
84f8747157
fix(lsp): support data urls in deno.importMap option (#11397) 2021-09-13 09:49:23 +05:30
Ryan Dahl
fb35cd0ef4
fix: permission prompt stuffing (#11931)
Fixes #9750
2021-09-09 08:38:47 -04:00
BasiqueEvangelist
08e12380a0
feat(cli): Support Basic authentication in DENO_AUTH_TOKENS (#11910) 2021-09-08 06:18:11 +02:00
David Sherret
2c2e3ec1ca
refactor(lsp): use deno_ast and cache swc ASTs (#11780) 2021-09-07 10:39:32 -04:00
Nayeem Rahman
d331c4b283
fix(ext/web): Format terminal DOMExceptions properly (#11834) 2021-09-06 22:59:20 +02:00
Andreu Botella
b7c2902c97
Don't drop messages from workers that have already been closed (#11913)
When `worker.terminate()` is called, the spec requires that the
corresponding port message queue is emptied, so no messages can be
received after the call, even if they were sent from the worker before
it was terminated.

The spec doesn't require this of `self.close()`, and since Deno uses
different channels to send messages and to notify that the worker was
closed, messages might still arrive after the worker is known to be
closed, which are currently being dropped. This change fixes that.

The fix involves two parts: one on the JS side and one on the Rust side.
The JS side was using the `#terminated` flag to keep track of whether
the worker is known to be closed, without distinguishing whether further
messages should be dropped or not. This PR changes that flag to an
enum `#state`, which can be one of `"RUNNING"`, `"CLOSED"` or
`"TERMINATED"`.

The Rust side was removing the `WorkerThread` struct from the workers
table when a close control was received, regardless of whether there
were any messages left to read, which made any subsequent calls to
`op_host_recv_message` to return `Ok(None)`, as if there were no more
mesasges. This change instead waits for both a close control and for
the message channel's sender to be closed before the worker thread is
removed from the table.
2021-09-06 11:05:02 +02:00
Casper Beyer
f9d29115a0
feat(cli): close test worker once all tests complete (#11727) 2021-09-04 20:19:26 +02:00
Bartek Iwańczuk
d93570a619
feat(lint): add support for config file and CLI flags for rules (#11776)
This commit adds support for following flags in deno lint subcommand:

--config - allows to load configuration file and parses "lint" object
--rules-tags=<tags> - allows specifying which set of tagged rules should be run
--rules-include=<rules> - allow specifying which rules should be run
--rules-exclude=<rules> - allow specifying which rules should not be run
2021-09-03 17:01:58 +02:00
David Sherret
c3001fe280
chore(test): improve flaky lsp_diagnostics_refresh_dependents test to give more info (#11905) 2021-09-02 20:31:59 -04:00
Casper Beyer
77ead8af20
fix(cli): retain path based test mode inference (#11878) 2021-09-01 18:31:56 +09:00
Kitson Kelly
935133f53a
feat(cli): Update to TypeScript 4.4 (#11678) 2021-08-27 10:12:59 +10:00
Casper Beyer
a3fd4bb998
fix(cli): dispatch unload event on watch drop (#11696) 2021-08-24 22:34:09 +02:00
Casper Beyer
a7240c5091
feat(cli): add --ignore flag to test command (#11712) 2021-08-24 17:23:29 +02:00
Casper Beyer
71e558c71c
test: re-enable test watch tests and mark as flaky (#11669) 2021-08-18 15:35:24 +02:00
Luca Casonato
a66218d457
fix(runtime): event loop panics in classic workers (#11756)
Classic worker scripts are now executed in the context of a Tokio
runtime. This does mean we can not spawn more tokio runtimes in
"op_worker_sync_fetch". We instead spawn a new thread there, that can
create a new Tokio runtime that we can use to block the worker thread.
2021-08-18 15:19:22 +02:00
Ryan Dahl
163f2ef571
fix: parse error when transpiling code with BOM (#11688)
Co-authored-by: David Sherret <dsherret@gmail.com>
2021-08-16 09:28:29 +02:00
Casper Beyer
d1fe03d677
fix(test): dispatch load event before tests are run (#11708) 2021-08-15 13:54:44 +02:00
Leo K
0c9d6cbb2a
fix(http/ws): support multiple options in connection header (#11675)
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-13 20:52:13 +02:00
Casper Beyer
293eed0ef2
test(cli): add test for test filtering (#11672) 2021-08-13 11:33:18 +02:00
Casper Beyer
3dff757927
fix(cli): allow specifiers of unknown media types with test command (#11652) 2021-08-12 20:10:14 +02:00
Bartek Iwańczuk
fd94575576
test: mark run_watch test as flaky (#11668) 2021-08-12 13:51:27 +02:00
Ryan Dahl
cd323612fd
mark cafile tests as flaky (#11649) 2021-08-11 17:38:07 +02:00
David Sherret
15a763152f
chore: move test files to testdata directory (#11601) 2021-08-11 10:20:47 -04:00
Bartek Iwańczuk
3a69941151
test: reenable cafile tests (#11615) 2021-08-11 11:52:52 +02:00
Bartek Iwańczuk
d82351d677
v1.13.0 2021-08-10 16:22:21 +02:00
Bartek Iwańczuk
b9a8111a00
refactor: --unsafely-ignore-certificate-errors (#11629) 2021-08-10 13:19:45 +02:00
Kitson Kelly
f7e416bc7f
feat(lsp): support clients which do not support disabled code actions (#11612)
Closes: #11610
2021-08-10 09:56:34 +10:00
Leo K
2db381eba9
feat: add experimental WebSocketStream API (#10365)
This commit adds the experimental WebSocketStream API when
using the --unstable flag.

The explainer for the API can be found here:
https://github.com/ricea/websocketstream-explainer
2021-08-10 00:28:17 +02:00
TheAifam5
353a4a1af3
feat: Add --unsafely-treat-insecure-origin-as-secure flag to disable SSL verification (#11324)
This commit adds "--unsafely-treat-insecure-origin-as-secure" flag 
that allows to disable SSL verification for all domains, or specific
domains if they were passed as an argument to the flag.

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-08-09 16:53:21 +02:00
Justin Chase
02c74fb709
feat(tls): Optionally support loading native certs (#11491)
This commit adds "DENO_TLS_CA_STORE" env variable to support 
optionally loading certificates from the users local certificate store. 
This will allow them to successfully connect via tls with corporate 
and self signed certs provided they have them installed in their keystore. 
It also allows them to deal with revoked certs by simply updating 
their keystore without having to upgrade Deno.

Currently supported values are "mozilla", "system" or empty value.
2021-08-07 14:49:38 +02:00
David Sherret
864ce6e832
feat(repl): add --eval flag for evaluating code when the repl starts (#11590) 2021-08-06 17:30:28 -04:00
Elias Sjögreen
33c8d790c3
feat: ffi to replace plugins (#11152)
This commit removes implementation of "native plugins" and replaces
it with FFI API.

Effectively "Deno.openPlugin" API was replaced with "Deno.dlopen" API.
2021-08-06 23:28:10 +02:00
David Sherret
e9ddc7a41a
feat(repl): support exports in the REPL (#11592) 2021-08-06 09:37:24 -04:00
Jean Pierre
728d205d9d
feat(lsp): implement refactoring code actions (#11555)
Closes: denoland/vscode_deno#433
2021-08-06 11:46:32 +10:00
Casper Beyer
c276b52828
feat: type check codeblocks in Markdown file with "deno test --doc" (#11421) 2021-07-29 21:03:06 +02:00
Feng Yu
935083d99a
fix(cli): deno doc panics on invalid url (#11536) 2021-07-29 04:07:25 -07:00
Kitson Kelly
667b026798
feat(lsp): ability to set DENO_DIR via settings (#11527)
Ref: denoland/vscode_deno#287
2021-07-28 07:25:09 +10:00
Bartek Iwańczuk
f47c550100
test: make integration::workers::workers test inspectable (#11524) 2021-07-27 02:11:38 +02:00
Casper Beyer
b2fcd3d014
fix(cli): side-load test modules (#11515)
This fixes a regression introduced in 1.9 where test modules became main
modules by side loading them in a generated module.
2021-07-26 14:05:44 +02:00
Kitson Kelly
72ac9c3ae0
fix(lsp): handle importmaps properly (#11496)
Fixes: #11146
Fixes: #11456
Fixes: #10439
2021-07-25 15:33:42 +10:00
Luca Casonato
78fc9a4c60
fix: support --cert flag for tls connect APIs (#11484) 2021-07-22 12:28:46 +02:00
Kitson Kelly
7d151efc68
fix(cli): info now displays type reference deps (#11478)
Fixes #11476
2021-07-22 15:34:28 +10:00
Luca Casonato
a2512de95f
fix: close fetch response body on GC (#11467)
This commit fixes fetch response bodies to be automatically closed if
the `Response.body` readable stream goes out of scope and is GC'ed.
2021-07-20 21:06:24 +02:00