Skip to content
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

install: new performance counters provider guid #1001

Closed
wants to merge 1 commit into from
Closed

install: new performance counters provider guid #1001

wants to merge 1 commit into from

Conversation

SgtPooki
Copy link
Contributor

io.js performance counters' manifest conflicts wth node.js' caused
install failures. A unique guid for the iojs performance counters
will resolve #524.

refs: #524

io.js performance counters' manifest conflicts wth node.js' caused
install failures. A unique guid for the iojs performance counters
will resolve #524.

refs: #524
@SgtPooki
Copy link
Contributor Author

@piscisaureus it was the provider guid. I did some investigating and confirmed that this PR will solve #524. Check out the steps below if you want to confirm for yourself without having to go through building and installing.

First step

Verify that you have the node performance counters installed:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{1e2e15d7-3760-470e-8699-
b9db5248edd5}\{3a22a8ec-297c-48ac-ab15-33ec93033fd8}"

You should get a response that lists the values of that entry in the registry. It should look something like this:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{1e2e15d7-3760-470e-8699-b9db5248edd5}\{3a22a8ec-297c-48ac-ab15-33ec93033fd8}
    NameResource    REG_DWORD    0x1
    ExplainResource    REG_DWORD    0x3
    InstanceType    REG_DWORD    0x6
    First Counter    REG_DWORD    0x523c
    NeutralName    REG_SZ    Node.js
    Last Counter    REG_DWORD    0x5250
    CounterBlock    REG_BINARY    0100000000044110000000000000000064000000000000000500000007...
    CounterCount    REG_DWORD    0xa

If you do not get the listing of data, you will get something like this ERROR: The system was unable to find the specified registry key or value. which means you do not have the node performance counters installed and will not be able to reproduce this bug.

Next steps

First, make sure your source is up to date, then try the following:

cd %iojsRoot%/src/res
lodctr /M:node_perfctr_provider.man

You will get an error like this:

Error: Unable to install performance counters in %iojsRoot%/src/res/node_perfctr_provider.man, error code is 13

This occurs due to the provider guid conflict. Replace the provider guid with a new guid produced by running uuidgen or guidgen and then run the lodctr /M:node_perfctr_provider.man command again It should install successfully this time, and tell you as much. There is no need to change the guid for the counterSet since that guid is relative to the provider. i.e. You must have unique guids between a provider's children, but those children may have guids that are the same as any provider, including the provider that contains it.

piscisaureus pushed a commit that referenced this pull request Feb 28, 2015
The io.js performance counters manifest conflicts with the one from
node, causing installer failures. Change the GUID in the io.js
performance counters manifest file to resolve the conflicts.

Fixes: #524
PR: #1001
Reviewed-by: Bert Belder <bertbelder@gmail.com>
@piscisaureus
Copy link
Contributor

lgtm

@piscisaureus
Copy link
Contributor

@SgtPooki
Thank you for investigating this and providing a fix; we really needed that!
I landed your PR in 7887e11.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants