What's the actual akka-actor version being used there? I've investigated a bit and it doesn't seem to be akka-actor_2.11:2.4.10. The stackmap frames are different I'm seeing with 2.4.10 are different than what's show in your stack trace.

Once a colleague bumped into a similar issue with Scala and it solved it by upgrading the JVM. Not sure what's the problem in your case.

For a bit of background. The JVM is performing some bytecode security checks when it loads .class files — to ensure there's no possibility for stack underflows or overflows in the generated bytecode, or that the arguments on stack have the types expected by the method receiving them, etc.

Before JVM 1.7 this was a thing done entirely by the JVM. After 1.7, compilers are sometimes required to emit "proofs" that the code they generated is behaving correctly. These proofs are the StackMapTables in the .class files.

Apparently, your JVM verified whether the emitted proofs are valid and figured out they're not. This can happen when there's a mismatch between the JVM algorithm that performs the verification and the compiler algorithm that generates the proofs. Which one is in your case I have no idea.


On 19/06/2017 23:36, Matlik wrote:
I'm encountering this issue which I've never seen before, and was wondering if someone could point me in the right direction. I have some Akka streams 2.4.10 code (with Scala 2.11.8) that is embedded into a GlassFish 4.0 server running Oracle Java 1.8.0_131-b11. All this is wrapped into a Docker container for deployment that uses the Ubuntu as the base image. Things were all working great for a while, but something appears to have changed that is causing us some grief.

The docker image is built with the latest Oracle Java 8 JDK and base OS (Ubuntu 14.04). When we needed to rebuild the image with a minor configuration change, we are now consistently getting the following error:

[#|2017-06-19T19:15:09.770+0000|WARNING|glassfish 4.0|javax.enterprise.web|_ThreadID=45;_ThreadName=http-listener-1(1);_TimeMillis=1497899709770;_LevelValue=900;| StandardWrapperValve[TimeSeriesServlet]: Servlet.service() for servlet TimeSeriesServlet threw exception java.lang.VerifyError: Stack map does not match the one at exception handler 98
  Exception Details:
    Location:
akka/dispatch/Envelope.<init>(Ljava/lang/Object;Lakka/actor/ActorRef;)V @98: athrow
    Reason:
      Current frame's flags are not assignable to stack map frame's.
    Current Frame:
      bci: @0
      flags: { flagThisUninit }
locals: { uninitializedThis, 'java/lang/Object', 'akka/actor/ActorRef' }
      stack: { 'java/lang/Throwable' }
    Stackmap Frame:
      bci: @98
      flags: { }
      locals: { top, 'java/lang/Object', 'akka/actor/ActorRef' }
      stack: { 'java/lang/Throwable' }
    Bytecode:
      0x0000000: 2a2b b500 322a 2cb5 0037 2ab7 0085 014e
      0x0000010: b200 8703 3201 0105 bd00 0859 032a 5359
      0x0000020: 0405 bd00 0859 032b 5359 042c 5353 b900
      0x0000030: 8d04 004e a700 053a 052a b800 932d c600
      0x0000040: 232d 1295 0105 bd00 0859 0311 00b1 bb00
      0x0000050: 975a 5fb7 009a 5359 0401 53b9 008d 0400
      0x0000060: 57b1 bf
    Exception Handler Table:
      bci [16, 52] => handler: 55
      bci [0, 98] => handler: 98
    Stackmap Table:
full_frame(@55,{Object[#6],Object[#8],Object[#120],Object[#8]},{Object[#130]})
      same_frame(@57)
      same_frame(@97)
      full_frame(@98,{Top,Object[#8],Object[#120]},{Object[#130]})
         at akka.dispatch.Envelope$.apply(AbstractDispatcher.scala:27)
         at akka.actor.Cell$class.sendMessage(ActorCell.scala:295)
         at akka.actor.ActorCell.sendMessage(ActorCell.scala:374)
at akka.actor.RepointableActorRef.$bang(RepointableActorRef.scala:171)
         at akka.actor.ActorRef.tell(ActorRef.scala:128)
at akka.pattern.AskableActorRef$.internalAsk$extension(AskSupport.scala:295) at akka.pattern.AskableActorRef$.$qmark$extension1(AskSupport.scala:281) at akka.event.LoggingBus$class.akka$event$LoggingBus$$addLogger(Logging.scala:181) at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$4.apply(Logging.scala:116) at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$4.apply(Logging.scala:115)
         at scala.util.Success$$anonfun$map$1.apply(Try.scala:237)
         at scala.util.Try$.apply(Try.scala:192)
         at scala.util.Success.map(Try.scala:237)
         at akka.event.LoggingBus$$anonfun$4.apply(Logging.scala:115)
         at akka.event.LoggingBus$$anonfun$4.apply(Logging.scala:112)
at scala.collection.TraversableLike$WithFilter$$anonfun$map$2.apply(TraversableLike.scala:683)
         at scala.collection.Iterator$class.foreach(Iterator.scala:893)
         at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
         at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:682) at akka.event.LoggingBus$class.startDefaultLoggers(Logging.scala:112) at scala.collection.TraversableLike$WithFilter$$anonfun$map$2.apply(TraversableLike.scala:683)
         at scala.collection.Iterator$class.foreach(Iterator.scala:893)
         at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
         at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:682) at akka.event.LoggingBus$class.startDefaultLoggers(Logging.scala:112)
         at akka.event.EventStream.startDefaultLoggers(EventStream.scala:28)
at akka.actor.LocalActorRefProvider.init(ActorRefProvider.scala:667)
         at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:648)
at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:645)
         at akka.actor.ActorSystemImpl._start(ActorSystem.scala:645)
         at akka.actor.ActorSystemImpl.start(ActorSystem.scala:661)
         at akka.actor.ActorSystem$.apply(ActorSystem.scala:142)
         at akka.actor.ActorSystem$.apply(ActorSystem.scala:109)
at com.vnomicscorp.timeseries.tsfs.TsfsApplicationContext.<init>(TsfsApplicationContext.scala:42)

And this is all kicked off just by calling this line of code:

   implicit val actorSystem = ActorSystem("tsfs")

This far, I tried various versions of the base OS and tried updating Akka with zero effect. Any suggestions would be greatly appreciated!
Thank you,
James

--
 >>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
 >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com <mailto:akka-user+unsubscr...@googlegroups.com>. To post to this group, send email to akka-user@googlegroups.com <mailto:akka-user@googlegroups.com>.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


--
Ionuț G. Stan  |  http://igstan.ro  |  http://bucharestfp.ro

--
     Read the docs: http://akka.io/docs/
     Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
     Search the archives: https://groups.google.com/group/akka-user
--- You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to