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

Webadmin 500 on bad identity #5322

Closed
chibenwa opened this issue Nov 8, 2024 · 5 comments
Closed

Webadmin 500 on bad identity #5322

chibenwa opened this issue Nov 8, 2024 · 5 comments
Assignees

Comments

@chibenwa
Copy link
Member

chibenwa commented Nov 8, 2024

Calling POST /users/John Doe/identities yields:

java.lang.IllegalStateException: null
	at com.google.common.base.Preconditions.checkState(Preconditions.java:499)
	at org.apache.james.core.Username.asMailAddress(Username.java:129)
	at com.github.fge.lambdas.functions.FunctionChainer.lambda$sneakyThrow$49(FunctionChainer.java:74)
	at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:208)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:492)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:424)
	at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
	at reactor.core.publisher.FluxExpand$ExpandBreathSubscriber.onNext(FluxExpand.java:118)
	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571)
	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
	at reactor.core.publisher.FluxExpand$ExpandBreathSubscriber.onSubscribe(FluxExpand.java:112)
	at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68)
	at reactor.core.publisher.Flux.subscribe(Flux.java:8840)
	at reactor.core.publisher.FluxExpand$ExpandBreathSubscriber.drainQueue(FluxExpand.java:179)
	at reactor.core.publisher.FluxExpand.subscribeOrReturn(FluxExpand.java:71)
	at reactor.core.publisher.Flux.subscribe(Flux.java:8825)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:430)
	at reactor.core.publisher.FluxArray$ArraySubscription.slowPath(FluxArray.java:126)
	at reactor.core.publisher.FluxArray$ArraySubscription.request(FluxArray.java:99)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)
	at reactor.core.publisher.FluxMerge.subscribe(FluxMerge.java:73)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
	at reactor.core.scala.publisher.SMono.subscribe(SMono.scala:1136)
	at reactor.core.scala.publisher.SMono.subscribe$(SMono.scala:1136)
	at reactor.core.scala.publisher.ReactiveSMono.subscribe(ReactiveSMono.scala:8)
	at reactor.core.publisher.FluxSource.subscribe(FluxSource.java:71)
	at reactor.core.publisher.Flux.subscribe(Flux.java:8840)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:430)
	at reactor.core.publisher.FluxArray$ArraySubscription.slowPath(FluxArray.java:126)
	at reactor.core.publisher.FluxArray$ArraySubscription.request(FluxArray.java:99)
	at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)
	at reactor.core.publisher.FluxMerge.subscribe(FluxMerge.java:73)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
	at reactor.core.scala.publisher.SMono.subscribe(SMono.scala:1136)
	at reactor.core.scala.publisher.SMono.subscribe$(SMono.scala:1136)
	at reactor.core.scala.publisher.ReactiveSMono.subscribe(ReactiveSMono.scala:8)
	at reactor.core.publisher.MonoFromPublisher.subscribe(MonoFromPublisher.java:64)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
	at reactor.core.scala.publisher.SMono.subscribe(SMono.scala:1136)
	at reactor.core.scala.publisher.SMono.subscribe$(SMono.scala:1136)
	at reactor.core.scala.publisher.ReactiveSMono.subscribe(ReactiveSMono.scala:8)
	at reactor.core.publisher.MonoFromPublisher.subscribe(MonoFromPublisher.java:64)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
	at reactor.core.publisher.Mono.block(Mono.java:1778)
	at org.apache.james.webadmin.data.jmap.UserIdentityRoutes.createIdentity(UserIdentityRoutes.java:128)
	at spark.RouteImpl$1.handle(RouteImpl.java:72)
	at spark.http.matching.Routes.execute(Routes.java:61)
	at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:134)
	at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1598)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Unknown Source)
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104)
		at reactor.core.publisher.Mono.block(Mono.java:1779)
		... 24 common frames omitted

=> Log level shall be info
=> We shall return a 400

URL /users/John Doe/identities

@chibenwa
Copy link
Member Author

chibenwa commented Nov 8, 2024

Or we can call UsersRepository::getMailAddressFor instead to do the convertion Username => MailAddress and be non virtual hosting friendly?

@quantranhong1999
Copy link
Member

quantranhong1999 commented Nov 20, 2024

This happens a lot again early 20/11 morning. Likely there was an Python Engine script triggered.

@quantranhong1999 quantranhong1999 self-assigned this Nov 25, 2024
@quantranhong1999
Copy link
Member

apache#2519

Or we can call UsersRepository::getMailAddressFor instead to do the convertion Username => MailAddress and be non virtual hosting friendly?

Likely not needed anymore as we rely on LSC which uses email as the username.

@chibenwa
Copy link
Member Author

No still good to make our softs more reliable.

@chibenwa
Copy link
Member Author

And the two complements each over.

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

No branches or pull requests

2 participants