Skip to content

build: --without-ssl and --without-intl imply new limitation (no debugger) #12758

Description

@refack
  • Version: > 6
  • Platform: All
  • Subsystem: inspector, ssl

Since #12197 (i.e. node8) when node is built --without-ssl or --without-intl inspector is not available. As a consequence node is built with no debugger interface. configure does not warn about this (new) consequence.

Since in previous versions these switches did not remove all debugger interface, this is a regression in the build behaviour.

Ref: #12757

Activity

  1. added
    inspectorIssues and PRs related to the V8 inspector protocol.
    regressionIssues related to regressions.
    on Apr 30, 2017
  2. refack commented on Apr 30, 2017

    @refack
    ContributorAuthor

    Marked regression since when node8 is built --without-ssl it will not have any kind of debugger interface. and this a new regressive behaviour for the --without-ssl switch

  3. refack commented on Apr 30, 2017

    @refack
    ContributorAuthor

    @addaleax correct me if I'm wrong but the debug protocol was independent of the ssl capabilities of the binary, and AFAIK inspect is. Thus, no ssl -> no debugger -> regression.

  4. addaleax commented on Apr 30, 2017

    @addaleax
    Member

    @refack Yeah, I see where you’re coming from, but I wouldn’t say it is a regression. This is related to features we’re intentionally adding and removing, there’s just no way we can avoid any incompatibilities.

  5. refack commented on Apr 30, 2017

    @refack
    ContributorAuthor

    could we build a proxy?

  6. added
    regressionIssues related to regressions.
    and removed
    regressionIssues related to regressions.
    on Apr 30, 2017
  7. refack commented on Apr 30, 2017

    @refack
    ContributorAuthor

    I thought about it, and then again, since this is an unintended consequence of the --without-ssl switch, IMHO even a strongly worded warning would solve this issue.

    @addaleax you are right in that this not an inspector bug but IMHO it is a build regression.

  8. changed the title [-]inspector: unavailable when built --without-ssl[/-] [+]build: --without-ssl has unintended consequences (no debugger) [/+] on Apr 30, 2017
  9. added
    buildIssues and PRs related to Node.js builds or CI infrastructure.
    opensslIssues and PRs related to the OpenSSL dependency.
    on Apr 30, 2017
  10. sam-github commented on May 4, 2017

    @sam-github
    Contributor

    Doesn't sound like a bug to me. Lots of stuff disappears when SSL isn't built in (crypto, https, ...). Building without OpenSSL is a fringe build, for special purposes.

  11. refack commented on May 7, 2017

    @refack
    ContributorAuthor

    Doesn't sound like a bug to me. Lots of stuff disappears when SSL isn't built in (crypto, https, ...). Building without OpenSSL is a fringe build, for special purposes.

    This is a regression in the build behaviour, since it's a new consequence of a feature that disappears.
    My solution was just to require explicitly to configure --without-debugger #12768

  12. sam-github commented on May 8, 2017

    @sam-github
    Contributor

    @refack I don't really follow, sorry.

    Are you saying that --without-ssl used to build node with the Inspector, and now it doesn't?

    Or are you saying that --without-ssl disables the Inspector and leave the Debugger so node could be generally said to "support debugging", and now that there is no Debugger, node can generally be said to "not support debugging"?

  13. refack commented on May 8, 2017

    @refack
    ContributorAuthor

    Or are you saying that --without-ssl disables the Inspector and leave the Debugger so node could be generally said to "support debugging", and now that there is no Debugger, node can generally be said to "not support debugging"?

    Yes.
    i.e. if you build v7 --without-ssl you can still debug, but ever since #12197 if you build --without-ssl you have no debugger interface (neither debug or inspect protocols). That's a new loss of an ability.

    My proposed solution is to require the builder to additionally explicitly specify --without-debugger (or --without-inspector) when calling ./configure

  14. changed the title [-]build: --without-ssl has unintended consequences (no debugger) [/-] [+]build: --without-ssl and --without-intl imply new limitation (no debugger)[/+] on May 8, 2017
  15. refack commented on May 8, 2017

    @refack
    ContributorAuthor

    Apparently --without-intl has the same effect. Title and first comment updated.

  16. sam-github commented on May 8, 2017

    @sam-github
    Contributor

    I don't see the regression. Losing the Debugger is obviously backwards incompatible/semver-major (and was treated as such). Also, forcing people to type two flags instead of one is an annoyance rather than being helpful.

    Unless you are saying that its possible to not have SSL, but to have the Inspector? You are decoupling that? If not, I'm not sure what problem is being solved here.

  17. refack commented on May 8, 2017

    @refack
    ContributorAuthor

    Unless you are saying that it's possible to not have SSL, but to have the Inspector? You are decoupling that? If not, I'm not sure what problem is being solved here.

    I was hoping that's possible. And I'm looking into it, but that's a bigger issue.

    Also, forcing people to type two flags instead of one is an annoyance rather than being helpful.

    IMHO building a new (even semver-major) version and finding out you lost a previously available (important) ability, without any warning, is worse.
    I see it a bit like the experimental (#12723) discussion. The user should explicitly opt-in to new behaviour, that way we minimize surprises.

    Another solution would be to emit a warning, but I fear it'll be drowned in all sort of script outputs.

  18. sam-github commented on May 8, 2017

    @sam-github
    Contributor

    There was a fair amount of warning that the Debugger was going away. And since there is no way to opt-out of the new behaviour, talking about opt-in vs opt-out doesn't seem to apply. And failing to disable SSL when configuring explicitly --without-ssl is in itself a step backwards and a loss of a feature. IMO, the pain exceeds the arguable gain.

  19. refack commented on May 26, 2017

    @refack
    ContributorAuthor

    Addressed by #12978

  20. sparkleholic commented on Sep 20, 2017

    @sparkleholic

    Is there any reason why --without-intl disable debugger?

  21. bnoordhuis commented on Sep 20, 2017

    @bnoordhuis
    Member

    @sparkleholic --without-intl disables ICU. The debugger uses ICU.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to Node.js builds or CI infrastructure.inspectorIssues and PRs related to the V8 inspector protocol.opensslIssues and PRs related to the OpenSSL dependency.regressionIssues related to regressions.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions