Useful or not, from you.
playframework HTTP idle-timeout (play.server.http.idleTimeout) seems to be ignored

Play Version

2.6.12

API

Java

Operating System

Windows 10 Enterprise 64-bit build 1709

JDK 8

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)


Library Dependencies

nothing special:

build.sbt:

libraryDependencies ++= Seq(
  guice,
  javaWs,
  filters,
  "org.apache.commons" % "commons-text" % "1.2",
  "com.typesafe.play" %% "play-json" % "2.6.9",
  "com.typesafe.play" %% "play-ahc-ws-standalone" % "1.1.6",
  "com.typesafe.play" %% "play-ws-standalone-json" % "1.1.6",
  "com.typesafe.play" %% "play-mailer" % "6.0.1",
  "com.typesafe.play" %% "play-mailer-guice" % "6.0.1",
  "com.wildbit.java" % "postmark" % "1.0.6",
  "com.google.auth" % "google-auth-library-credentials" % "0.9.0",
  "com.google.firebase" % "firebase-admin" % "5.9.0",
  "com.auth0" % "java-jwt" % "3.3.0",
  "org.mapstruct" % "mapstruct-jdk8" % "1.2.0.Final",
  "org.mapstruct" % "mapstruct-processor" % "1.2.0.Final",
  "net.logstash.logback" % "logstash-logback-encoder" % "5.0"
)

plugins.sbt:

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")

Expected Behavior

To get my config to wait 180 seconds not 75 seconds.

Actual Behavior

I'm getting this warnining and seems my values are not set correctly and still getting the defautl one. 2018-03-12 11:42:01 CDT: [debug] - akka.actor.RepointableActorRef - Aborting tcp connection to /0:0:0:0:0:0:0:1:61338 because of upstream failure: akka.http.impl.engine.HttpIdleTimeoutException: HTTP idle-timeout encountered, no bytes passed in the last 75000000000 nanoseconds. This is configurable by akka.http.[server|client].idle-timeout.

Reproducible Test Case

I have the following config:

play.server {
  akka.requestTimeout = 180 seconds

  http {
    # The idle timeout for an open connection after which it will be closed
    # Set to null or "infinite" to disable the timeout, but notice that this
    # is not encouraged since timeout are important mechanisms to protect your
    # servers from malicious attacks or programming mistakes.
    idleTimeout = 180 seconds
  }
}

In the controller I make it wait for 2 minutes:

try {
    Thread.sleep(120 * 1000L);
    System.out.println("Waiting done");
} catch (InterruptedException e) {
    e.printStackTrace();
}
That's a useful answer
Without any help

I am unable to set the idleTimeout in production mode using either application.conf or command line vars.

When app is running, I am seeing the variable is set, but is ignored in production mode. Development works fine