aspect-build / aspect-build/rules_js

[Bug]: cannot parse invalid wire-format data with ibazel + rules_js

Open
#1,528 1 comment 0 reactions 0 assignees View on GitHub
bug engagement note need: investigation
Dominant language
Starlark
Stars
378
Forks
183
Avg merge
1d 9h
Merged PRs (30d)
32

Description

### What happened?

Occasionally when running `ibazel` on a `webpack_dev_server` target, we see an error that looks similar to this

```
iBazel [1:01PM]: Querying for files to watch...
iBazel [1:01PM]: Running //project:dev_server
Could not read blaze query response. Error: proto: cannot parse invalid wire-format data
Output:
�"
��!
//project:dev_server_js_run_devserver:/Users/davidaghassi/robinhood/rh/project/BUILD.bazel:68:18"s
$config_dependencies2$@aspect_rules_js//js:enable_runfiles2.@aspect_rules_js//js:allow_unresolved_symlinksh�"
$is_executable*truehp"J
$launcher_template*-@aspect_rules_js//js/private:js_binary.sh.tplh�"M
$node_patches*5@aspect_rules_js//js/private/node-patches:register.jsh�"M
$node_patches_files2/@aspect_rules_js//js/private/node-patches:fs.jsh�"[
$node_patches_legacy*<@aspect_rules_js//js/private/node-patches_legacy:register.jsh�"[
$node_patches_legacy_files26@aspect_rules_js//js/private/node-patches_legacy:fs.jsh�"I
$node_wrapper_bat*-@aspect_rules_js//js/private:node_wrapper.bath�"G
$node_wrapper_sh*,@aspect_rules_js//js/private:node_wrapper.shh�"G
$npm_wrapper_bat*,@aspect_rules_js//js/private:npm_wrapper.bath�"E
$npm_wrapper_sh*+@aspect_rules_js//js/private:npm_wrapper.shh�"4
$windows_constraint*@platforms//os:windowsh�"
:action_listenerh�"D
3allow_execroot_entry_point_with_no_copy_data_to_bin*falsehp"
applicable_licensesh�"�
args2serve--config2($(rootpath dev_server.webpack.config.js)--config23$(rootpath //project/configs:webpack.dev.config.js)2--merge2--mode2
developmenth�"

aspect_hintsh�"
chdir*h�"
command*h�"
compatible_withh�"
copy_data_to_bin*truehp"�
data2*//project:node_modules/html-webpack-plugin2$//project:node_modules/webpack-merge2+//project:node_modules/webpack-stats-plugin2//project/configs:package_json2#//project/configs:webpack.config.js2)//project/configs:webpack.bazel.plugin.js2//project/public:public2//project/src:src2&//project:dev_server.webpack.config.js2'//project/configs:webpack.dev.config.js2//project/src:App.jsh�"

deprecationh�"
enable_runfiles*truehp"J

entry_point*4@aspect_rules_js//js/private:js_devserver_entrypointh�"X
env
B

PROJECT_DIRprojectB5

NODE_OPTIONS%--es-module-specifier-resolution=nodeh"
exec_compatible_withh�"
exec_properties
h"
expect_failure*h�"
expected_exit_codeh"
featuresh�"

fixed_argsh�"1
generator_function*rh_webpack_devserverh�"6
generator_location*project/BUILD.bazel:68:18h�"#
generator_name*
dev_serverh�"0
grant_sandbox_write_permissions*falsehp"%
include_declarations*falsehp"

include_npm*falsehp"+
nclude_npm_linked_packages*truehp"*
include_transitive_sources*truehp"
log_level*errorh�"
name*
dev_serverh�"
no_copy_to_binh�"

node_optionsh�"
node_toolchainh�"
output_licenses :
NONEh"
patch_node_fs*truehp"&
preserve_symlinks_main*truehp"
restricted_toh�"$
tags2ibazel_notify_changesh�"
target_compatible_withh�"
testonly*falsehp"<
tool_exec_cfg*$//project:_dev_server_webpack_binaryh�">
tool_target_cfg*$//project:_dev_server_webpack_binaryh�"

toolchainsh�"
transitive_configsh�"+
nresolved_symlinks_enabled*truehp"(
use_execroot_entry_point*truehp"

visibilityh�"_
$rule_implementation_hash*@f4c1834a0f0ce314fabe486ffd039fa692515e5cefceee61e4116c8336824f0e*$//project:_dev_server_webpack_binary*&//project:dev_server.webpack.config.js**//project:node_modules/html-webpack-plugin*$//project:node_modules/webpack-merge*+//project:node_modules/webpack-stats-plugin*//project/configs:package_json*)//project/configs:webpack.bazel.plugin.js*#//project/configs:webpack.config.js*'//project/configs:webpack.dev.config.js*//project/public:public*//project/src:App.js*//project/src:src*.@aspect_rules_js//js:allow_unresolved_symlinks*$@aspect_rules_js//js:enable_runfiles*-@aspect_rules_js//js/private:js_binary.sh.tpl*4@aspect_rules_js//js/private:js_devserver_entrypoint*-@aspect_rules_js//js/private:node_wrapper.bat*,@aspect_rules_js//js/private:node_wrapper.sh*,@aspect_rules_js//js/private:npm_wrapper.bat*+@aspect_rules_js//js/private:npm_wrapper.sh*/@aspect_rules_js//js/private/node-patches:fs.js*5@aspect_rules_js//js/private/node-patches:register.js*6@aspect_rules_js//js/private/node-patches_legacy:fs.js*<@aspect_rules_js//js/private/node-patches_legacy:register.js*@platforms//os:windowsB"@6d9fafb30ca625b3dd5dfec2331abeee13a26df54a641b4020c4563be7fcdf56darwin_arm64-fastbuild
darwin_arm64"@6d9fafb30ca625b3dd5dfec2331abeee13a26df54a641b4020c4563be7fcdf56$rule_implementation_hash*@f4c1834a0f0ce314fabe486ffd039fa692515e5cefceee61e4116c8336824f0e*$//project:_dev_server_webpack_binary*&//project:dev_server.webpack.config.js**//project:node_modules/html-webpack-plugin*$//project:node_modules/webpack-merge*+//project:node_modules/webpack-stats-plugin*//project/configs:package_json*)//project/configs:webpack.bazel.plugin.js*#//project/configs:webpack.config.js*'//project/configs:webpack.dev.config.js*//project/public:public*//project/src:App.js*//project/src:src*.@aspect_rules_js//js:allow_unresolved_symlinks*$@aspect_rules_js//js:enable_runfiles*-@aspect_rules_js//js/private:js_binary.sh.tpl*4@aspect_rules_js//js/private:js_devserver_entrypoint*-@aspect_rules_js//js/private:node_wrapper.bat*,@aspect_rules_js//js/private:node_wrapper.sh*,@aspect_rules_js//js/private:npm_wrapper.bat*+@aspect_rules_js//js/private:npm_wrapper.sh*/@aspect_rules_js//js/private/node-patches:fs.js*5@aspect_rules_js//js/private/node-patches:register.js*6@aspect_rules_js//js/private/node-patches_legacy:fs.js*<@aspect_rules_js//js/private/node-patches_legacy:register.js*@platforms//os:windowsB"@6d9fafb30ca625b3dd5dfec2331abeee13a26df54a641b4020c4563be7fcdf56darwin_arm64-fastbuild
darwin_arm64"@6d9fafb30ca625b3dd5dfec2331abeee13a26df54a641b4020c4563be7fcdf56
iBazel [1:01PM]: Error running Bazel proto: cannot parse invalid wire-format data
 ELIFECYCLE  Command failed with exit code 4.
```

We have been unable to reproduce this consistently but it does show up occasionally. @gregmagolan asked me to post here, I will provide whatever info I can.

Our ibazel config flag has these in it

```
# Run bazel --config=dev to choose these options:
build:dev --show_progress=false --curses=no --color=no --show_timestamps=false --ui_event_filters=-INFO,-STDERR
```

### Version

Development (host) and target OS/architectures:

Output of `bazel --version`: 6.4.0

Version of the Aspect rules, or other relevant rules from your
`WORKSPACE` or `MODULE.bazel` file:
rules_js - 1.38.0
rules_webpack - 0.14.0
rules_ts - 2.2.0
aspect-cli - 5.8.5 (for gazelle)

Language(s) and/or frameworks involved:

### How to reproduce

```shell
Have a package with a BUILD file that contains a webpack_dev_server target.

Run that target with ibazel through pnpm with the config we provided in the bazelrc.

Beyond that, I'm not sure what triggers the error. Maybe it's related to rebasing, maybe it's related to running again and again. I'm not sure.
```

### Any other information?

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by running the webpack_dev_server target through ibazel with the listed bazelrc flags, using Bazel 6.4.0 and the reported rules versions. Investigate the iBazel query-response and Bazel proto-handling path around the invalid wire-format error. Done means identifying a reproducible trigger and preventing the intermittent parse failure, with a regression test or reproduction.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, webpack
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.