Play 프레임 워크 (Scala)에서 ForkJoinTask [] 및 ForkJoinPool $ WorkQueue로 메모리 누수

Denis

Scala v2.11.4로 작성된 Play Framework v2.3.7에 응용 프로그램이 있습니다. 서버에서 실행 중이며 일주일에 한 번 OutOfMemoryError : GC 오버 헤드 제한 초과 예외와 함께 충돌합니다. 나는 거기에서 무엇이 잘못되었는지 알아 내려고 노력하고있다. 메모리 덤프를 만들고 사용 된 모든 클래스의 히스토그램을 만들었습니다 (사용 jmap -histo). 그리고 나는 매우 이상한 결과를 발견했습니다.

Object Histogram:

num       #instances    #bytes  Class description
--------------------------------------------------------------------------
1:              24023   787570032       scala.concurrent.forkjoin.ForkJoinTask[]
2:              96965   12420368        * MethodKlass
3:              96965   11250824        * ConstMethodKlass
4:              8424    8652552 * ConstantPoolKlass
5:              8424    7547640 * InstanceKlassKlass
6:              61739   5531288 char[]
7:              7527    4799776 * ConstantPoolCacheKlass
8:              24024   4612608 scala.concurrent.forkjoin.ForkJoinPool$WorkQueue
9:              27289   3543672 byte[]
10:             23190   2597280 scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2
11:             63921   2045472 java.util.concurrent.ConcurrentHashMap$HashEntry
12:             3735    1470112 * MethodDataKlass
13:             42877   1029048 scala.collection.immutable.$colon$colon
14:             8834    1023064 java.lang.Class

그래서, 인스턴스가 많이있다 ForkJoinTask[]ForkJoinPool$WorkQueue. 따라서 모든 비동기 호출 및 앱 스레드에 대한 대기열 및 작업이라고 가정합니다. 그리고 이론적으로는 완성 된 후 바로 제거해야한다고 생각합니다.

이 문제의 가능한 원인은 무엇입니까? ExecutionContext를 잘못 구성했을 수 있습니까? 이전에이 문제에 직면 한 사람이 있습니까?

Denis

이 문제는 "scala-reflect"라이브러리의 최신 버전 (2.11.6 이후 버전)을 사용하여 해결되었습니다.

val scalaV = "2.11.6"

scalaVersion := scalaV

libraryDependencies ++= Seq(
  "org.scala-lang" % "scala-reflect" % scalaV
)

다음은 버그 설명입니다. https://issues.scala-lang.org/browse/SI-8946

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Play 프레임 워크 onHandlerNotFound 메서드

분류에서Dev

Play 프레임 워크 : 인수를 사용하여 컨트롤러 메서드로 리디렉션

분류에서Dev

서버리스 프레임 워크 및 여러 AWS 프로필

분류에서Dev

Play Scala 프레임 워크에서 ajax 변수를 스칼라 변수로 변환하는 방법

분류에서Dev

Play 프레임 워크에서 POST 경로 매개 변수 사용

분류에서Dev

뷰에서 컨트롤러 메서드 사용-Play 프레임 워크-Scala

분류에서Dev

IntelliJ 및 Play 프레임 워크 : "`scala-library`에 손상된 소스 경로가 있습니다."

분류에서Dev

Swift Quick 프레임 워크 메모리 누수

분류에서Dev

수신 및 Microsoft 봇 프레임 워크 내에서 전자 메일로 첨부 파일 보내기

분류에서Dev

Play 프레임 워크에서 오류 메시지 통합

분류에서Dev

Scala의 Play 프레임 워크에서 생성 된 새로운 서비스에서 SBT를 사용하여 Squeryl을 가져올 수 없음

분류에서Dev

Play 프레임 워크에서 API 키 처리를위한 모범 사례

분류에서Dev

Play 프레임 워크 경로 매개 변수 승인

분류에서Dev

Play 프레임 워크 (Java) 모델 유효성 검사-create () 및 update ()에 대한 다른 검사

분류에서Dev

Amazon SES 자격 증명 형식-SendGrid에서 SES로 Scala 애플리케이션 (Play 프레임 워크) 마이그레이션

분류에서Dev

핫 리로딩이 아닌 Play 프레임 워크

분류에서Dev

핫 리로딩이 아닌 Play 프레임 워크

분류에서Dev

Play 프레임 워크 2.1 HTTP HEAD 메서드 응답

분류에서Dev

Play 프레임 워크-postgresql에 연결할 수 없습니다.

분류에서Dev

로봇 프레임 워크에서 반환 값으로 변수 변수 처리

분류에서Dev

Play 프레임 워크 : 다른 도메인으로 리디렉션

분류에서Dev

서버리스 프레임 워크에서 경로 매개 변수 사용

분류에서Dev

Scala 앱에서 WSClient 사용 (Play 프레임 워크)

분류에서Dev

Play 프레임 워크 경로

분류에서Dev

Play 프레임 워크 2의 구성에서 동적으로 애플리케이션 이름 표시

분류에서Dev

로봇 프레임 워크에서 Selenium.Webdriver 및 SeleniumLibrary 사용

분류에서Dev

로봇 프레임 워크에서 "Regexp Escape"및 "should match"사용

분류에서Dev

Play 프레임 워크와 MySQL, 정수 배열로 모델을 정의 할 수 있습니까?

분류에서Dev

Play 프레임 워크 애플리케이션 및 H2 브라우저

Related 관련 기사

  1. 1

    Play 프레임 워크 onHandlerNotFound 메서드

  2. 2

    Play 프레임 워크 : 인수를 사용하여 컨트롤러 메서드로 리디렉션

  3. 3

    서버리스 프레임 워크 및 여러 AWS 프로필

  4. 4

    Play Scala 프레임 워크에서 ajax 변수를 스칼라 변수로 변환하는 방법

  5. 5

    Play 프레임 워크에서 POST 경로 매개 변수 사용

  6. 6

    뷰에서 컨트롤러 메서드 사용-Play 프레임 워크-Scala

  7. 7

    IntelliJ 및 Play 프레임 워크 : "`scala-library`에 손상된 소스 경로가 있습니다."

  8. 8

    Swift Quick 프레임 워크 메모리 누수

  9. 9

    수신 및 Microsoft 봇 프레임 워크 내에서 전자 메일로 첨부 파일 보내기

  10. 10

    Play 프레임 워크에서 오류 메시지 통합

  11. 11

    Scala의 Play 프레임 워크에서 생성 된 새로운 서비스에서 SBT를 사용하여 Squeryl을 가져올 수 없음

  12. 12

    Play 프레임 워크에서 API 키 처리를위한 모범 사례

  13. 13

    Play 프레임 워크 경로 매개 변수 승인

  14. 14

    Play 프레임 워크 (Java) 모델 유효성 검사-create () 및 update ()에 대한 다른 검사

  15. 15

    Amazon SES 자격 증명 형식-SendGrid에서 SES로 Scala 애플리케이션 (Play 프레임 워크) 마이그레이션

  16. 16

    핫 리로딩이 아닌 Play 프레임 워크

  17. 17

    핫 리로딩이 아닌 Play 프레임 워크

  18. 18

    Play 프레임 워크 2.1 HTTP HEAD 메서드 응답

  19. 19

    Play 프레임 워크-postgresql에 연결할 수 없습니다.

  20. 20

    로봇 프레임 워크에서 반환 값으로 변수 변수 처리

  21. 21

    Play 프레임 워크 : 다른 도메인으로 리디렉션

  22. 22

    서버리스 프레임 워크에서 경로 매개 변수 사용

  23. 23

    Scala 앱에서 WSClient 사용 (Play 프레임 워크)

  24. 24

    Play 프레임 워크 경로

  25. 25

    Play 프레임 워크 2의 구성에서 동적으로 애플리케이션 이름 표시

  26. 26

    로봇 프레임 워크에서 Selenium.Webdriver 및 SeleniumLibrary 사용

  27. 27

    로봇 프레임 워크에서 "Regexp Escape"및 "should match"사용

  28. 28

    Play 프레임 워크와 MySQL, 정수 배열로 모델을 정의 할 수 있습니까?

  29. 29

    Play 프레임 워크 애플리케이션 및 H2 브라우저

뜨겁다태그

보관