michaellzc / vscode-hadolint

VSCode extension to integrate hadolint, a Dockerfile linter, into VSCode
https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint
MIT License
77 stars 5 forks source link

Cannot read properties of undefined error in run commands that contain a pipe and line continuation characters #82

Open ddnomad opened 1 year ago

ddnomad commented 1 year ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. Create Dockerfile with contents listed below
  2. Observe errors messages from the extensions that read hadolint: Cannot read properties of undefined (reading 'length')

Dockerfile:

FROM debian:bullseye

RUN cat /etc/os-release | \
    grep debian

Expected behaviour Linter should produce the following output (which corresponds to the output when running the linter on CLI):

Dockerfile:3 DL4006 warning: Set the SHELL option -o pipefail before RUN with a pipe in it. If you are using /bin/sh in an alpine image or if your shell is symlinked to busybox then consider explicitly setting your SHELL to /bin/ash, or disable this check
Dockerfile:3 SC2002 style: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.

Screenshots or Dockerfile Not applicable.

Environment and version (please complete the following information):

Debug information

[hadolint(3038863) file:///home/ddnomad/development/github.com/homelab] Document is saved: file:///home/ddnomad/development/github.com/homelab/images/qbittorrent/Dockerfile
[hadolint(3038863) file:///home/ddnomad/development/github.com/homelab] Current settings: {"hadolintPath":"hadolint","cliOptions":["--no-color"],"maxNumberOfProblems":100,"outputLevel":"warning"}
[hadolint] Running hadolint /home/ddnomad/development/github.com/homelab/images/qbittorrent/Dockerfile --no-color in /home/ddnomad/development/github.com/homelab
[Error - 7:47:49 PM] TypeError: Cannot read properties of undefined (reading 'length')
    at /home/ddnomad/.vscode-server/extensions/exiasr.hadolint-1.1.2/server/out/server.js:33:112710
    at Array.forEach (<anonymous>)
    at Mn (/home/ddnomad/.vscode-server/extensions/exiasr.hadolint-1.1.2/server/out/server.js:33:112526)

Additional context None

samualtnorman commented 1 year ago

also hitting this, is this repo still maintained?

ddnomad commented 1 year ago

also hitting this, is this repo still maintained?

This is still an issue, just reproduced it. I reckon @michaellzc does not have time to take a look at this.

I suspect that fixing the actual cause is not that complicated, the bug seems to be happening in one of the forEach loops in https://github.com/michaellzc/vscode-hadolint/blob/master/server/src/server.ts, probably because whatever is returned from the call to hadolint is undefined.

The other concern would be whether we will be able to actually get the pull request merged and the extension updated, since @michaellzc does not seem to be actively watching over this repo at the moment.

michaellzc commented 1 year ago

also hitting this, is this repo still maintained?

This is still an issue, just reproduced it. I reckon @michaellzc does not have time to take a look at this.

I suspect that fixing the actual cause is not that complicated, the bug seems to be happening in one of the forEach loops in https://github.com/michaellzc/vscode-hadolint/blob/master/server/src/server.ts, probably because whatever is returned from the call to hadolint is undefined.

The other concern would be whether we will be able to actually get the pull request merged and the extension updated, since @michaellzc does not seem to be actively watching over this repo at the moment.

hey, I have not been closely keeping a tab on this project, largely due to a lack of personal need for hadolint anymore.

If there is any proposed fix, I am happy to review this. If you don't get any reply, please hit me up at mlzc@hey.com. Also, I would love to add those who have more bandwidth and interest in this plugin as maintainers to this repo.