Git Product home page Git Product logo

Comments (10)

ejona86 avatar ejona86 commented on August 27, 2024 1

Yeah, I saw the warnings were expected and that we couldn't pre-migrate.

I'm trying a one-off with #11450. Early results show a channelFactoryShouldNNotSetSocketOptionKeepAlive failure on Linux which I don't yet see on my machine (Java 11). Seems like the channel creation is failing, but I don't know why that'd be flaky. I'll wait until the other CIs finish before digging too deep.

For a continuous CI (tehe) I'm not quite sure how we'd handle the warnings before the first Final release. But it also seems there's only a few places to change. Running the latest snapshot may be a bit interesting to select without manually bumping the version each month.

from grpc-java.

normanmaurer avatar normanmaurer commented on August 27, 2024

/cc @ejona86

from grpc-java.

ejona86 avatar ejona86 commented on August 27, 2024

For this one-off test, is 4.2.0.Alpha2 close enough, or should we really test the latest SNAPSHOT?

from grpc-java.

normanmaurer avatar normanmaurer commented on August 27, 2024

I mean SNAPSHOT would be best but latest Alpha release should also be fine. I will cut a new Alpha soonish as well

from grpc-java.

ejona86 avatar ejona86 commented on August 27, 2024

A quick test with just Linux and Alpha2 mostly just had *EventLoopGroup warnings. We have one shading test failure, but that is unlikely to matter; it is testing that we properly rewrote META-INF/native-image files and one of them was probably renamed. (Edit: Actually, we had already fixed that on a newer version of Netty, but I was on a different base than I thought. Changing to a fresh master, everything passes, on Linux)

from grpc-java.

normanmaurer avatar normanmaurer commented on August 27, 2024

@ejona86 nice! Yeah the EventLoopGroup warnings are expected as constructing these directly is deprecated in favor of using MultiThreadIoEventLoopGroup(....)

from grpc-java.

normanmaurer avatar normanmaurer commented on August 27, 2024

@ejona86 please keep me posted and let me know if there is anything you need

from grpc-java.

normanmaurer avatar normanmaurer commented on August 27, 2024

@ejona86 any updates on the failed tests ?

from grpc-java.

ejona86 avatar ejona86 commented on August 27, 2024

The tests have passed on every platform. But the Github Actions for Java 8/17 failed. I figured out where the test results were saved. Java 17 stdout/err doesn't have anything special. But in the Java 8 failure, this looks suspicious but may be from the @After and not related to the root cause:

Aug 07, 2024 12:25:55 AM io.netty.util.concurrent.DefaultPromise safeExecute
SEVERE: Failed to submit a listener notification task. Event loop shut down?
java.util.concurrent.RejectedExecutionException: event executor terminated
	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1053)
	at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:399)
	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:392)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:955)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:921)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:911)
	at io.netty.util.concurrent.DefaultPromise.safeExecute(DefaultPromise.java:862)
	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:500)
	at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
	at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
	at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
	at io.netty.channel.nio.AbstractNioChannel.doClose(AbstractNioChannel.java:578)
	at io.netty.channel.socket.nio.NioSocketChannel.doClose(NioSocketChannel.java:342)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:618)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$1000(AbstractChannel.java:288)
	at io.netty.channel.AbstractChannel$AbstractUnsafe$6.run(AbstractChannel.java:575)
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
	at io.netty.util.concurrent.GlobalEventExecutor$TaskRunner.run(GlobalEventExecutor.java:262)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:750)

Aug 07, 2024 12:25:55 AM io.netty.channel.AbstractChannel$AbstractUnsafe invokeLater
WARNING: Can't invoke task later as EventLoop rejected it
java.util.concurrent.RejectedExecutionException: event executor terminated
	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1053)
	at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:399)
	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:392)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:955)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:921)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:911)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater(AbstractChannel.java:888)
	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$1200(AbstractChannel.java:288)
	at io.netty.channel.AbstractChannel$AbstractUnsafe$6.run(AbstractChannel.java:578)
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
	at io.netty.util.concurrent.GlobalEventExecutor$TaskRunner.run(GlobalEventExecutor.java:262)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:750)

It didn't reproduce on my machine, so I suspect a race. Looking at the test, I'm most suspicious about it using a LocalChannel with an NioEventLoopGroup (out of laziness). I can try swapping the event loop type, but it might be interesting to figure out why it is flaky.

from grpc-java.

ejona86 avatar ejona86 commented on August 27, 2024

Using DefaultEventLoopGroup instead of NioEventLoopGroup with LocalChannel fixed the flake.

All the tests passed on all platforms (the errors are because an example is failing because it doesn't know how to find the snapshot; on Thursday an example was added that used grpc-netty instead of grpc-netty-shaded).

from grpc-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.