You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by LB <co...@googlemail.com.INVALID> on 2022/11/18 07:51:24 UTC

Build from source fails when port 3030 already in use

Hi,

just want to inform about a minor limitation in the current build process:

Building Jena from Maven fails when you have something already running 
on port 3030 (e.g. a Fuseki on standard port) because there is now some 
YARN test happening in Fuseki UI by using the frontend-maven-plugin:

Error log:


[INFO] --- frontend-maven-plugin:1.12.1:yarn (yarn run test:e2e) @ 
jena-fuseki-ui ---
[INFO] Running 'yarn run test:e2e -- --headless --browser chrome' in 
/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui
[INFO] yarn run v1.22.17
[INFO] warning From Yarn 1.0 onwards, scripts don't require "--" for 
options to be forwarded. In a future version, any explicit "--" will be 
forwarded as-is to the scripts.
[INFO] $ bash -c 'concurrently --names "SERVER,TESTS" --prefix-colors 
"yellow,blue" --success "first" --kill-others "yarn run serve:fuseki" 
"vue-cli-service test:e2e ${0}"' --headless --browser chrome
[INFO] [SERVER] $ nodemon src/services/mock/json-server.js 
src/services/mock/db.json
[INFO] [SERVER] [nodemon] 2.0.20
[INFO] [SERVER] [nodemon] to restart at any time, enter `rs`
[INFO] [SERVER] [nodemon] watching path(s): *.*
[INFO] [SERVER] [nodemon] watching extensions: js,mjs,json
[INFO] [SERVER] [nodemon] starting `node 
src/services/mock/json-server.js src/services/mock/db.json`
[INFO] [SERVER] node:events:368
[INFO] [SERVER]       throw er; // Unhandled 'error' event
[INFO] [SERVER]       ^
[INFO] [SERVER]
[INFO] [SERVER] Error: listen EADDRINUSE: address already in use :::3030
[INFO] [SERVER]     at Server.setupListenHandle [as _listen2] 
(node:net:1334:16)
[INFO] [SERVER]     at listenInCluster (node:net:1382:12)
[INFO] [SERVER]     at Server.listen (node:net:1469:7)
[INFO] [SERVER]     at Function.listen 
(/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/node_modules/express/lib/application.js:635:24)
[INFO] [SERVER]     at Object.<anonymous> 
(/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js:281:8)
[INFO] [SERVER]     at Module._compile 
(node:internal/modules/cjs/loader:1101:14)
[INFO] [SERVER]     at Object.Module._extensions..js 
(node:internal/modules/cjs/loader:1153:10)
[INFO] [SERVER]     at Module.load (node:internal/modules/cjs/loader:981:32)
[INFO] [SERVER]     at Function.Module._load 
(node:internal/modules/cjs/loader:822:12)
[INFO] [SERVER]     at Function.executeUserEntryPoint [as runMain] 
(node:internal/modules/run_main:81:12)
[INFO] [SERVER] Emitted 'error' event on Server instance at:
[INFO] [SERVER]     at emitErrorNT (node:net:1361:8)
[INFO] [SERVER]     at processTicksAndRejections 
(node:internal/process/task_queues:83:21) {
[INFO] [SERVER]   code: 'EADDRINUSE',
[INFO] [SERVER]   errno: -98,
[INFO] [SERVER]   syscall: 'listen',
[INFO] [SERVER]   address: '::',
[INFO] [SERVER]   port: 3030
[INFO] [SERVER] }
[INFO] [SERVER] [nodemon] app crashed - waiting for file changes before 
starting...


At the moment I'm doing

mvn -Dskip.yarn

to skip the YARN test - might not be ideal, but for my purposes it works.

I consider my post here more like a reference for other people having 
the same issue.


Regards,

Lorenz


Re: Build from source fails when port 3030 already in use

Posted by Bruno Kinoshita <ki...@apache.org>.
PR created to fix the port allocation. In another PR we can change how e2e
tests are executed.

https://github.com/apache/jena/pull/1630/

Cheers
Bruno

On Fri, 18 Nov 2022 at 10:56, Bruno Kinoshita <br...@gmail.com>
wrote:

> Ah, that makes sense. The e2e tests are indeed using 3030
>
>
> https://github.com/apache/jena/blob/748fc2d0c2b3e397bd2571a29c71106f840505ae/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js#L18
>
> If I recall correctly, there is a way to configure it so the port is
> dynamic. And I'd be OK with the e2e tests being executed only in CI or in a
> different maven profile. Cypress requires a few GB's of dependencies/tools
> too. I believe most contributors would prefer to avoid downloading that if
> it is not necessary for their changes.
>
> Cheers
> Bruno
>
> On Fri, 18 Nov 2022 at 09:43, Phillip Ross <ph...@gmail.com>
> wrote:
>
>> Hi Lorenz,
>>
>> You might specifically be bumping up against the e2e test that had
>> been commented out but was uncommented in a recent commit.  You may be
>> able to just comment out the specific e2e yarn and still retain the
>> others.  I commented on a github issue relating to this here:
>> https://github.com/apache/jena/issues/1306#issuecomment-1310677569
>>
>> I imagine the assumptions made in the end-to-end testing about
>> exclusive access to resources very well may be something many devs
>> bump into which led me to suggest that maybe this be something would
>> better be disabled by default and easily enabled when end to end
>> testing was desired (such as in CI environments)
>>
>> Thanks!
>> - Phillip
>>
>> On Fri, Nov 18, 2022 at 2:51 AM LB <co...@googlemail.com.invalid>
>> wrote:
>> >
>> > Hi,
>> >
>> > just want to inform about a minor limitation in the current build
>> process:
>> >
>> > Building Jena from Maven fails when you have something already running
>> > on port 3030 (e.g. a Fuseki on standard port) because there is now some
>> > YARN test happening in Fuseki UI by using the frontend-maven-plugin:
>> >
>> > Error log:
>> >
>> >
>> > [INFO] --- frontend-maven-plugin:1.12.1:yarn (yarn run test:e2e) @
>> > jena-fuseki-ui ---
>> > [INFO] Running 'yarn run test:e2e -- --headless --browser chrome' in
>> > /home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui
>> > [INFO] yarn run v1.22.17
>> > [INFO] warning From Yarn 1.0 onwards, scripts don't require "--" for
>> > options to be forwarded. In a future version, any explicit "--" will be
>> > forwarded as-is to the scripts.
>> > [INFO] $ bash -c 'concurrently --names "SERVER,TESTS" --prefix-colors
>> > "yellow,blue" --success "first" --kill-others "yarn run serve:fuseki"
>> > "vue-cli-service test:e2e ${0}"' --headless --browser chrome
>> > [INFO] [SERVER] $ nodemon src/services/mock/json-server.js
>> > src/services/mock/db.json
>> > [INFO] [SERVER] [nodemon] 2.0.20
>> > [INFO] [SERVER] [nodemon] to restart at any time, enter `rs`
>> > [INFO] [SERVER] [nodemon] watching path(s): *.*
>> > [INFO] [SERVER] [nodemon] watching extensions: js,mjs,json
>> > [INFO] [SERVER] [nodemon] starting `node
>> > src/services/mock/json-server.js src/services/mock/db.json`
>> > [INFO] [SERVER] node:events:368
>> > [INFO] [SERVER]       throw er; // Unhandled 'error' event
>> > [INFO] [SERVER]       ^
>> > [INFO] [SERVER]
>> > [INFO] [SERVER] Error: listen EADDRINUSE: address already in use :::3030
>> > [INFO] [SERVER]     at Server.setupListenHandle [as _listen2]
>> > (node:net:1334:16)
>> > [INFO] [SERVER]     at listenInCluster (node:net:1382:12)
>> > [INFO] [SERVER]     at Server.listen (node:net:1469:7)
>> > [INFO] [SERVER]     at Function.listen
>> >
>> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/node_modules/express/lib/application.js:635:24)
>> > [INFO] [SERVER]     at Object.<anonymous>
>> >
>> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js:281:8)
>> > [INFO] [SERVER]     at Module._compile
>> > (node:internal/modules/cjs/loader:1101:14)
>> > [INFO] [SERVER]     at Object.Module._extensions..js
>> > (node:internal/modules/cjs/loader:1153:10)
>> > [INFO] [SERVER]     at Module.load
>> (node:internal/modules/cjs/loader:981:32)
>> > [INFO] [SERVER]     at Function.Module._load
>> > (node:internal/modules/cjs/loader:822:12)
>> > [INFO] [SERVER]     at Function.executeUserEntryPoint [as runMain]
>> > (node:internal/modules/run_main:81:12)
>> > [INFO] [SERVER] Emitted 'error' event on Server instance at:
>> > [INFO] [SERVER]     at emitErrorNT (node:net:1361:8)
>> > [INFO] [SERVER]     at processTicksAndRejections
>> > (node:internal/process/task_queues:83:21) {
>> > [INFO] [SERVER]   code: 'EADDRINUSE',
>> > [INFO] [SERVER]   errno: -98,
>> > [INFO] [SERVER]   syscall: 'listen',
>> > [INFO] [SERVER]   address: '::',
>> > [INFO] [SERVER]   port: 3030
>> > [INFO] [SERVER] }
>> > [INFO] [SERVER] [nodemon] app crashed - waiting for file changes before
>> > starting...
>> >
>> >
>> > At the moment I'm doing
>> >
>> > mvn -Dskip.yarn
>> >
>> > to skip the YARN test - might not be ideal, but for my purposes it
>> works.
>> >
>> > I consider my post here more like a reference for other people having
>> > the same issue.
>> >
>> >
>> > Regards,
>> >
>> > Lorenz
>> >
>>
>

Re: Build from source fails when port 3030 already in use

Posted by Bruno Kinoshita <br...@gmail.com>.
Ah, that makes sense. The e2e tests are indeed using 3030

https://github.com/apache/jena/blob/748fc2d0c2b3e397bd2571a29c71106f840505ae/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js#L18

If I recall correctly, there is a way to configure it so the port is
dynamic. And I'd be OK with the e2e tests being executed only in CI or in a
different maven profile. Cypress requires a few GB's of dependencies/tools
too. I believe most contributors would prefer to avoid downloading that if
it is not necessary for their changes.

Cheers
Bruno

On Fri, 18 Nov 2022 at 09:43, Phillip Ross <ph...@gmail.com>
wrote:

> Hi Lorenz,
>
> You might specifically be bumping up against the e2e test that had
> been commented out but was uncommented in a recent commit.  You may be
> able to just comment out the specific e2e yarn and still retain the
> others.  I commented on a github issue relating to this here:
> https://github.com/apache/jena/issues/1306#issuecomment-1310677569
>
> I imagine the assumptions made in the end-to-end testing about
> exclusive access to resources very well may be something many devs
> bump into which led me to suggest that maybe this be something would
> better be disabled by default and easily enabled when end to end
> testing was desired (such as in CI environments)
>
> Thanks!
> - Phillip
>
> On Fri, Nov 18, 2022 at 2:51 AM LB <co...@googlemail.com.invalid>
> wrote:
> >
> > Hi,
> >
> > just want to inform about a minor limitation in the current build
> process:
> >
> > Building Jena from Maven fails when you have something already running
> > on port 3030 (e.g. a Fuseki on standard port) because there is now some
> > YARN test happening in Fuseki UI by using the frontend-maven-plugin:
> >
> > Error log:
> >
> >
> > [INFO] --- frontend-maven-plugin:1.12.1:yarn (yarn run test:e2e) @
> > jena-fuseki-ui ---
> > [INFO] Running 'yarn run test:e2e -- --headless --browser chrome' in
> > /home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui
> > [INFO] yarn run v1.22.17
> > [INFO] warning From Yarn 1.0 onwards, scripts don't require "--" for
> > options to be forwarded. In a future version, any explicit "--" will be
> > forwarded as-is to the scripts.
> > [INFO] $ bash -c 'concurrently --names "SERVER,TESTS" --prefix-colors
> > "yellow,blue" --success "first" --kill-others "yarn run serve:fuseki"
> > "vue-cli-service test:e2e ${0}"' --headless --browser chrome
> > [INFO] [SERVER] $ nodemon src/services/mock/json-server.js
> > src/services/mock/db.json
> > [INFO] [SERVER] [nodemon] 2.0.20
> > [INFO] [SERVER] [nodemon] to restart at any time, enter `rs`
> > [INFO] [SERVER] [nodemon] watching path(s): *.*
> > [INFO] [SERVER] [nodemon] watching extensions: js,mjs,json
> > [INFO] [SERVER] [nodemon] starting `node
> > src/services/mock/json-server.js src/services/mock/db.json`
> > [INFO] [SERVER] node:events:368
> > [INFO] [SERVER]       throw er; // Unhandled 'error' event
> > [INFO] [SERVER]       ^
> > [INFO] [SERVER]
> > [INFO] [SERVER] Error: listen EADDRINUSE: address already in use :::3030
> > [INFO] [SERVER]     at Server.setupListenHandle [as _listen2]
> > (node:net:1334:16)
> > [INFO] [SERVER]     at listenInCluster (node:net:1382:12)
> > [INFO] [SERVER]     at Server.listen (node:net:1469:7)
> > [INFO] [SERVER]     at Function.listen
> >
> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/node_modules/express/lib/application.js:635:24)
> > [INFO] [SERVER]     at Object.<anonymous>
> >
> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js:281:8)
> > [INFO] [SERVER]     at Module._compile
> > (node:internal/modules/cjs/loader:1101:14)
> > [INFO] [SERVER]     at Object.Module._extensions..js
> > (node:internal/modules/cjs/loader:1153:10)
> > [INFO] [SERVER]     at Module.load
> (node:internal/modules/cjs/loader:981:32)
> > [INFO] [SERVER]     at Function.Module._load
> > (node:internal/modules/cjs/loader:822:12)
> > [INFO] [SERVER]     at Function.executeUserEntryPoint [as runMain]
> > (node:internal/modules/run_main:81:12)
> > [INFO] [SERVER] Emitted 'error' event on Server instance at:
> > [INFO] [SERVER]     at emitErrorNT (node:net:1361:8)
> > [INFO] [SERVER]     at processTicksAndRejections
> > (node:internal/process/task_queues:83:21) {
> > [INFO] [SERVER]   code: 'EADDRINUSE',
> > [INFO] [SERVER]   errno: -98,
> > [INFO] [SERVER]   syscall: 'listen',
> > [INFO] [SERVER]   address: '::',
> > [INFO] [SERVER]   port: 3030
> > [INFO] [SERVER] }
> > [INFO] [SERVER] [nodemon] app crashed - waiting for file changes before
> > starting...
> >
> >
> > At the moment I'm doing
> >
> > mvn -Dskip.yarn
> >
> > to skip the YARN test - might not be ideal, but for my purposes it works.
> >
> > I consider my post here more like a reference for other people having
> > the same issue.
> >
> >
> > Regards,
> >
> > Lorenz
> >
>

Re: Build from source fails when port 3030 already in use

Posted by Phillip Ross <ph...@gmail.com>.
Hi Lorenz,

You might specifically be bumping up against the e2e test that had
been commented out but was uncommented in a recent commit.  You may be
able to just comment out the specific e2e yarn and still retain the
others.  I commented on a github issue relating to this here:
https://github.com/apache/jena/issues/1306#issuecomment-1310677569

I imagine the assumptions made in the end-to-end testing about
exclusive access to resources very well may be something many devs
bump into which led me to suggest that maybe this be something would
better be disabled by default and easily enabled when end to end
testing was desired (such as in CI environments)

Thanks!
- Phillip

On Fri, Nov 18, 2022 at 2:51 AM LB <co...@googlemail.com.invalid> wrote:
>
> Hi,
>
> just want to inform about a minor limitation in the current build process:
>
> Building Jena from Maven fails when you have something already running
> on port 3030 (e.g. a Fuseki on standard port) because there is now some
> YARN test happening in Fuseki UI by using the frontend-maven-plugin:
>
> Error log:
>
>
> [INFO] --- frontend-maven-plugin:1.12.1:yarn (yarn run test:e2e) @
> jena-fuseki-ui ---
> [INFO] Running 'yarn run test:e2e -- --headless --browser chrome' in
> /home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui
> [INFO] yarn run v1.22.17
> [INFO] warning From Yarn 1.0 onwards, scripts don't require "--" for
> options to be forwarded. In a future version, any explicit "--" will be
> forwarded as-is to the scripts.
> [INFO] $ bash -c 'concurrently --names "SERVER,TESTS" --prefix-colors
> "yellow,blue" --success "first" --kill-others "yarn run serve:fuseki"
> "vue-cli-service test:e2e ${0}"' --headless --browser chrome
> [INFO] [SERVER] $ nodemon src/services/mock/json-server.js
> src/services/mock/db.json
> [INFO] [SERVER] [nodemon] 2.0.20
> [INFO] [SERVER] [nodemon] to restart at any time, enter `rs`
> [INFO] [SERVER] [nodemon] watching path(s): *.*
> [INFO] [SERVER] [nodemon] watching extensions: js,mjs,json
> [INFO] [SERVER] [nodemon] starting `node
> src/services/mock/json-server.js src/services/mock/db.json`
> [INFO] [SERVER] node:events:368
> [INFO] [SERVER]       throw er; // Unhandled 'error' event
> [INFO] [SERVER]       ^
> [INFO] [SERVER]
> [INFO] [SERVER] Error: listen EADDRINUSE: address already in use :::3030
> [INFO] [SERVER]     at Server.setupListenHandle [as _listen2]
> (node:net:1334:16)
> [INFO] [SERVER]     at listenInCluster (node:net:1382:12)
> [INFO] [SERVER]     at Server.listen (node:net:1469:7)
> [INFO] [SERVER]     at Function.listen
> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/node_modules/express/lib/application.js:635:24)
> [INFO] [SERVER]     at Object.<anonymous>
> (/home/LorenzBuehmann/tools/jena/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js:281:8)
> [INFO] [SERVER]     at Module._compile
> (node:internal/modules/cjs/loader:1101:14)
> [INFO] [SERVER]     at Object.Module._extensions..js
> (node:internal/modules/cjs/loader:1153:10)
> [INFO] [SERVER]     at Module.load (node:internal/modules/cjs/loader:981:32)
> [INFO] [SERVER]     at Function.Module._load
> (node:internal/modules/cjs/loader:822:12)
> [INFO] [SERVER]     at Function.executeUserEntryPoint [as runMain]
> (node:internal/modules/run_main:81:12)
> [INFO] [SERVER] Emitted 'error' event on Server instance at:
> [INFO] [SERVER]     at emitErrorNT (node:net:1361:8)
> [INFO] [SERVER]     at processTicksAndRejections
> (node:internal/process/task_queues:83:21) {
> [INFO] [SERVER]   code: 'EADDRINUSE',
> [INFO] [SERVER]   errno: -98,
> [INFO] [SERVER]   syscall: 'listen',
> [INFO] [SERVER]   address: '::',
> [INFO] [SERVER]   port: 3030
> [INFO] [SERVER] }
> [INFO] [SERVER] [nodemon] app crashed - waiting for file changes before
> starting...
>
>
> At the moment I'm doing
>
> mvn -Dskip.yarn
>
> to skip the YARN test - might not be ideal, but for my purposes it works.
>
> I consider my post here more like a reference for other people having
> the same issue.
>
>
> Regards,
>
> Lorenz
>