Return-Path: X-Original-To: apmail-hadoop-user-archive@minotaur.apache.org Delivered-To: apmail-hadoop-user-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9C676F5B3 for ; Tue, 13 Aug 2013 10:15:54 +0000 (UTC) Received: (qmail 11513 invoked by uid 500); 13 Aug 2013 10:15:47 -0000 Delivered-To: apmail-hadoop-user-archive@hadoop.apache.org Received: (qmail 11435 invoked by uid 500); 13 Aug 2013 10:15:46 -0000 Mailing-List: contact user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hadoop.apache.org Delivered-To: mailing list user@hadoop.apache.org Received: (qmail 11424 invoked by uid 99); 13 Aug 2013 10:15:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Aug 2013 10:15:45 +0000 X-ASF-Spam-Status: No, hits=1.8 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,HTML_MESSAGE,NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of liulei412@gmail.com designates 209.85.128.176 as permitted sender) Received: from [209.85.128.176] (HELO mail-ve0-f176.google.com) (209.85.128.176) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Aug 2013 10:15:38 +0000 Received: by mail-ve0-f176.google.com with SMTP id b10so6440119vea.21 for ; Tue, 13 Aug 2013 03:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=qLu78bTfL8ZrMNwYs6cukxt8qu6WtuRMWbcVmWH3XKs=; b=PU8Zm0M8NDBG1FalIt/77AAY3ACaDJAeMXnw+1GGOOMxwahiVqpB+2SGXg7ypyiXKJ BSMxjxgnz2+hwv3fnhkfGxs4S1wEr1RaK4aymRMEv2EmM0vt7+A7ReZUOvebEpycePaE ZL/U66dNt84aLk7HI1KqB8LJha8QIC9TsrJHJmLQvNbtN6c7tNawhjn3Wfy8DvpvMYuL YrqhL8y282e5cfWL8rP3rIGXNJHx2K86GqxtDR3rQylM1sNk9A6e7aZsprXX5yUucNO6 bivOQZlr7d2L82d//bOAEeFqNTaf8j4GJ9FxV6FViItficS3yXaQNZWGBKf2QA5bA/v8 ZGjw== MIME-Version: 1.0 X-Received: by 10.58.118.70 with SMTP id kk6mr3734962veb.1.1376388917142; Tue, 13 Aug 2013 03:15:17 -0700 (PDT) Received: by 10.220.90.9 with HTTP; Tue, 13 Aug 2013 03:15:16 -0700 (PDT) In-Reply-To: References: Date: Tue, 13 Aug 2013 18:15:16 +0800 Message-ID: Subject: Re: when Standby Namenode is doing checkpoint, the Active NameNode is slow. From: lei liu To: user@hadoop.apache.org Content-Type: multipart/mixed; boundary=089e01229c827aa91f04e3d184f5 X-Virus-Checked: Checked by ClamAV on apache.org --089e01229c827aa91f04e3d184f5 Content-Type: multipart/alternative; boundary=089e01229c827aa91c04e3d184f3 --089e01229c827aa91c04e3d184f3 Content-Type: text/plain; charset=ISO-8859-1 I write one programm to test NameNode performance. Please see the EditLogPerformance.java I use 60 threads to execute the EditLogPerformance.javacode, the testing result is below content: 2013-08-13 17:43:01,479 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10392810 speed:1055 2013-08-13 17:43:11,482 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10407310 speed:725 2013-08-13 17:43:21,484 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10407358 speed:2 2013-08-13 17:43:31,487 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10407490 speed:6 2013-08-13 17:43:41,490 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10407624 speed:6 2013-08-13 17:43:51,493 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10408690 speed:53 2013-08-13 17:44:01,496 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10422220 speed:676 2013-08-13 17:44:11,499 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10445216 speed:1149 2013-08-13 17:44:21,502 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10465166 speed:997 2013-08-13 17:44:31,505 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10486614 speed:1072 2013-08-13 17:44:41,508 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10506778 speed:1008 2013-08-13 17:44:51,511 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10526660 speed:994 2013-08-13 17:45:01,514 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10548092 speed:1071 2013-08-13 17:45:11,517 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10569892 speed:1090 2013-08-13 17:45:21,520 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10593296 speed:1170 2013-08-13 17:45:31,523 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10614478 speed:1059 2013-08-13 17:45:41,526 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10636006 speed:1076 2013-08-13 17:45:51,529 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10656430 speed:1021 2013-08-13 17:46:01,532 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10677774 speed:1067 2013-08-13 17:46:11,534 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10699096 speed:1066 2013-08-13 17:46:21,537 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10720970 speed:1093 2013-08-13 17:46:31,540 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10741432 speed:1023 2013-08-13 17:46:41,543 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10760854 speed:971 2013-08-13 17:46:51,546 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10781680 speed:1041 2013-08-13 17:47:01,549 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10802302 speed:1031 2013-08-13 17:47:11,552 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10823888 speed:1079 2013-08-13 17:47:21,555 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10845276 speed:1069 2013-08-13 17:47:31,558 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10865470 speed:1009 2013-08-13 17:47:41,561 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10885046 speed:978 2013-08-13 17:47:51,564 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10905606 speed:1028 2013-08-13 17:48:01,567 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10926854 speed:1062 2013-08-13 17:48:11,570 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10946446 speed:979 2013-08-13 17:48:21,573 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10966554 speed:1005 2013-08-13 17:48:31,576 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:10986794 speed:1012 2013-08-13 17:48:41,579 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11007484 speed:1034 2013-08-13 17:48:51,581 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11028400 speed:1045 2013-08-13 17:49:01,584 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11049312 speed:1045 2013-08-13 17:49:11,587 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11070396 speed:1054 2013-08-13 17:49:21,590 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11087408 speed:850 2013-08-13 17:49:31,593 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11087418 speed:0 2013-08-13 17:49:41,596 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11087546 speed:6 2013-08-13 17:49:51,599 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11087716 speed:8 2013-08-13 17:50:01,602 INFO my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:11091608 speed:194 The speed is less than ten sometimes. I find when Active NameNode download the fsimage file, the speed is less than ten. So I think download fsimage file that affects the performance of Active NameNode. There are below info in Standby NameNode: 2013-08-13 17:48:12,412 INFO org.apache.hadoop.hdfs.server.namenode.ha.StandbyCheckpointer: Triggering checkpoint because there have been 2558038 txns since the last checkpoint, which exceeds the configured threshold 1000000 2013-08-13 17:48:12,413 INFO org.apache.hadoop.hdfs.server.namenode.FSImage: Saving image file /home/musa.ll/hadoop2/cluster-data/name/current/fsimage.ckpt_0000000000521186406 using no compression 2013-08-13 17:49:19,085 INFO org.apache.hadoop.hdfs.server.namenode.FSImage: Image file of size 3385425100 saved in 66 seconds. 2013-08-13 17:49:19,655 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Opening connection to http://10.232.98.77:20021/getimage?putimage=1&txid=521186406&port=20021&storageInfo=-40:1499625118:0:CID-921af0aa-b831-4828-965c-3b71a5149600 2013-08-13 17:53:21,107 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Transfer took 241.45s at 0.00 KB/s 2013-08-13 17:53:21,107 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Uploaded image with txid 521186406 to namenode at 10.232.98.77:20021 There are below info in Active NameNode: 2013-08-13 17:49:19,659 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Opening connection to http://dw78.kgb.sqa.cm4:20021/getimage?getimage=1&txid=521186406&storageInfo=-40:1499625118:0:CID-921af0aa-b831-4828-965c-3b71a5149600 2013-08-13 17:53:20,610 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Transfer took 240.95s at 13720.96 KB/s 2013-08-13 17:53:20,610 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Downloaded file fsimage.ckpt_0000000000521186406 size 3385425100 bytes. 2013/8/13 Jitendra Yadav > Hi, > > Can you please let me know that how you identified the slowness between > primary and standby namnode? > > Also please share the network connection bandwidth between these two > servers. > > Thanks > > On Tue, Aug 13, 2013 at 11:52 AM, lei liu wrote: > >> The fsimage file size is 1658934155 >> >> >> 2013/8/13 Harsh J >> >>> How large are your checkpointed fsimage files? >>> >>> On Mon, Aug 12, 2013 at 3:42 PM, lei liu wrote: >>> > When Standby Namenode is doing checkpoint, upload the image file to >>> Active >>> > NameNode, the Active NameNode is very slow. What is reason result to >>> the >>> > Active NameNode is slow? >>> > >>> > >>> > Thanks, >>> > >>> > LiuLei >>> > >>> >>> >>> >>> -- >>> Harsh J >>> >> >> > --089e01229c827aa91c04e3d184f3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I write one programm to test NameNode performance. Pl= ease see the EditLogPerformance.java

I use 60 threads to = execute the EditLogPerformance.javacode,=A0 the testing result is below con= tent:
2013-08-13 17:43:01,479 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10392810=A0 speed:1055
2013-08-13 17:43:11,482= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10407310=A0 speed:725
2013-08-13 17:43:21,484 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10407358=A0 speed:2
2013-08-13 17:43:31,487 IN= FO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:= 10407490=A0 speed:6
2013-08-13 17:43:41,490 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10407624=A0 speed:6
2013-08-13 17:43:51,493 IN= FO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:= 10408690=A0 speed:53
2013-08-13 17:44:01,496 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10422220=A0 speed:676
2013-08-13 17:44:11,499 = INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCoun= t:10445216=A0 speed:1149
2013-08-13 17:44:21,502 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10465166=A0 speed:997
2013-08-13 17:44:31,505 = INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCoun= t:10486614=A0 speed:1072
2013-08-13 17:44:41,508 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10506778=A0 speed:1008
2013-08-13 17:44:51,511= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10526660=A0 speed:994
2013-08-13 17:45:01,514 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10548092=A0 speed:1071
2013-08-13 17:45:11,517= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10569892=A0 speed:1090
2013-08-13 17:45:21,520 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10593296=A0 speed:1170
2013-08-13 17:45:31,523= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10614478=A0 speed:1059
2013-08-13 17:45:41,526 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10636006=A0 speed:1076
2013-08-13 17:45:51,529= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10656430=A0 speed:1021
2013-08-13 17:46:01,532 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10677774=A0 speed:1067
2013-08-13 17:46:11,534= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10699096=A0 speed:1066
2013-08-13 17:46:21,537 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10720970=A0 speed:1093
2013-08-13 17:46:31,540= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10741432=A0 speed:1023
2013-08-13 17:46:41,543 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10760854=A0 speed:971
2013-08-13 17:46:51,546 = INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCoun= t:10781680=A0 speed:1041
2013-08-13 17:47:01,549 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10802302=A0 speed:1031
2013-08-13 17:47:11,552= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10823888=A0 speed:1079
2013-08-13 17:47:21,555 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10845276=A0 speed:1069
2013-08-13 17:47:31,558= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10865470=A0 speed:1009
2013-08-13 17:47:41,561 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10885046=A0 speed:978
2013-08-13 17:47:51,564 = INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCoun= t:10905606=A0 speed:1028
2013-08-13 17:48:01,567 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10926854=A0 speed:1062
2013-08-13 17:48:11,570= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10946446=A0 speed:979
2013-08-13 17:48:21,573 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:10966554=A0 speed:1005
2013-08-13 17:48:31,576= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:10986794=A0 speed:1012
2013-08-13 17:48:41,579 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:11007484=A0 speed:1034
2013-08-13 17:48:51,581= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:11028400=A0 speed:1045
2013-08-13 17:49:01,584 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:11049312=A0 speed:1045
2013-08-13 17:49:11,587= INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCou= nt:11070396=A0 speed:1054
2013-08-13 17:49:21,590 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:11087408=A0 speed:850
2013-08-13 17:49:31,593 = INFO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCoun= t:11087418=A0 speed:0
2013-08-13 17:49:41,596 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:11087546=A0 speed:6
2013-08-13 17:49:51,599 IN= FO=A0 my.EditLogPerformance (EditLogPerformance.java:run(37)) - totalCount:= 11087716=A0 speed:8
2013-08-13 17:50:01,602 INFO=A0 my.EditLogPerformance (EditLogPerformance.j= ava:run(37)) - totalCount:11091608=A0 speed:194



The speed is less than ten sometimes. I find whe= n Active NameNode download the fsimage file, the=A0 speed is less than ten= . So I think download fsimage file that affects the performan= ce=A0 of Active NameNode.


There are below info in Standby NameNode:
2013-= 08-13 17:48:12,412 INFO org.apache.hadoop.hdfs.server.namenode.ha.StandbyCh= eckpointer: Triggering checkpoint because there have been 2558038 txns sinc= e the last checkpoint, which exceeds the configured threshold 1000000
2013-08-13 17:48:12,413 INFO org.apache.hadoop.hdfs.server.namenode.FSImage= : Saving image file /home/musa.ll/hadoop2/cluster-data/name/current/fsimage= .ckpt_0000000000521186406 using no compression
2013-08-13 17:49:19,085 I= NFO org.apache.hadoop.hdfs.server.namenode.FSImage: Image file of size 3385= 425100 saved in 66 seconds.
2013-08-13 17:49:19,655 INFO org.apache.hadoop.hdfs.server.namenode.Transfe= rFsImage: Opening connection to http://10.232.98.77= :20021/getimage?putimage=3D1&txid=3D521186406&port=3D20021&stor= ageInfo=3D-40:1499625118:0:CID-921af0aa-b831-4828-965c-3b71a5149600
2013-08-13 17:53:21,107 INFO org.apache.hadoop.hdfs.server.namenode.Transfe= rFsImage: Transfer took 241.45s at 0.00 KB/s
2013-08-13 17:53:21,107 INF= O org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Uploaded image wi= th txid 521186406 to namenode at 10.2= 32.98.77:20021


There are below info in Active NameNode:
2013-08-13 17:49:19,659= INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Opening conne= ction to http://dw78.kgb.sqa.cm4:20021/getimage?getimage=3D1&= ;txid=3D521186406&storageInfo=3D-40:1499625118:0:CID-921af0aa-b831-4828= -965c-3b71a5149600
2013-08-13 17:53:20,610 INFO org.apache.hadoop.hdfs.server.namenode.Transfe= rFsImage: Transfer took 240.95s at 13720.96 KB/s
2013-08-13 17:53:20,610= INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Downloaded fi= le fsimage.ckpt_0000000000521186406 size 3385425100 bytes.






=A0



<= /div>


20= 13/8/13 Jitendra Yadav <jeetuyadav200890@gmail.com>=
Hi,
=A0
Can you please let me know that how you identified the slowness betwee= n primary and standby namnode?
=A0
Also please share the network connection bandwidth between these two s= ervers.
=A0
Thanks

On Tue, Aug 13, 2013 at 11:52 AM, lei= liu <liulei412@gmail.com> wrote:
The fsimage file size is 1658934155


2013/8/13 Harsh J <harsh@cloudera.com>=
How large are your checkpointed fsima= ge files?

On Mon, Aug 12, 2013 at 3:42 PM, lei liu <liulei412@gmail.com> wrote:
&= gt; When Standby Namenode is doing checkpoint, =A0upload the image file to = Active
> NameNode, the Active NameNode is very slow. What is reason result to t= he
> Active NameNode is slow?
>
>
> Thanks,
>=
> LiuLei
>



--
Harsh J



--089e01229c827aa91c04e3d184f3-- --089e01229c827aa91f04e3d184f5 Content-Type: application/octet-stream; name="EditLogPerformance.java" Content-Disposition: attachment; filename="EditLogPerformance.java" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hkaxj2au0 cGFja2FnZSBteTsNCg0KaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247DQppbXBvcnQgamF2YS51 dGlsLlJhbmRvbTsNCmltcG9ydCBqYXZhLnV0aWwuVVVJRDsNCmltcG9ydCBqYXZhLnV0aWwuY29u Y3VycmVudC5hdG9taWMuQXRvbWljSW50ZWdlcjsNCmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVu dC5hdG9taWMuQXRvbWljTG9uZzsNCg0KaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5n LkxvZzsNCmltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5Ow0KaW1w b3J0IG9yZy5hcGFjaGUuaGFkb29wLmNvbmYuQ29uZmlndXJhdGlvbjsNCmltcG9ydCBvcmcuYXBh Y2hlLmhhZG9vcC5mcy5CbG9ja0xvY2F0aW9uOw0KaW1wb3J0IG9yZy5hcGFjaGUuaGFkb29wLmZz LkZTRGF0YU91dHB1dFN0cmVhbTsNCmltcG9ydCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5GaWxlU3Rh dHVzOw0KaW1wb3J0IG9yZy5hcGFjaGUuaGFkb29wLmZzLkZpbGVTeXN0ZW07DQppbXBvcnQgb3Jn LmFwYWNoZS5oYWRvb3AuZnMuUGF0aDsNCmltcG9ydCBvcmcuYXBhY2hlLmhhZG9vcC5mcy5wZXJt aXNzaW9uLkZzUGVybWlzc2lvbjsNCmltcG9ydCBvcmcuYXBhY2hlLmhhZG9vcC5oZGZzLkRpc3Ry aWJ1dGVkRmlsZVN5c3RlbTsNCg0KcHVibGljIGNsYXNzIEVkaXRMb2dQZXJmb3JtYW5jZSB7DQog IHB1YmxpYyBzdGF0aWMgZmluYWwgTG9nIExPRyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKEVkaXRMb2dQ ZXJmb3JtYW5jZS5jbGFzcyk7DQogIA0KICBwcml2YXRlIEF0b21pY0xvbmcgY291bnQgPSBuZXcg QXRvbWljTG9uZygwKTsNCiAgcHJpdmF0ZSBBdG9taWNMb25nIHRvdGFsQ291bnQgPSBuZXcgQXRv bWljTG9uZygwKTsNCiAgDQogIHB1YmxpYyBjbGFzcyBTdGF0aXN0aWNzIGV4dGVuZHMgVGhyZWFk IHsNCiAgICBwdWJsaWMgdm9pZCBydW4oKSB7DQogICAgICB3aGlsZSh0cnVlKSB7DQogICAgICAg IHRyeSB7DQogICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMDAgKiAxMCk7DQogICAgICAgIH0gY2F0 Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsNCiAgICAgICAgICBMT0cuZXJyb3IoZS5nZXRN ZXNzYWdlKCksIGUpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBsb25nIHZhbHVlID0g Y291bnQuZ2V0QW5kU2V0KDApOw0KICAgICAgICBpZih2YWx1ZSAhPSAwKSB7DQogICAgICAgICAg TE9HLmluZm8oInRvdGFsQ291bnQ6IisgdG90YWxDb3VudCArIiAgc3BlZWQ6IiArICh2YWx1ZS8x MCkpOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgY2xhc3Mg RmlsZU9wZXJhdGlvbiBleHRlbmRzIFRocmVhZCB7DQogICAgcHJpdmF0ZSBSYW5kb20gciA9IG5l dyBSYW5kb20oKTsNCiAgICBwcml2YXRlIGludCBpbmRleCA9IDA7DQogICAgDQogICAgcHVibGlj IEZpbGVPcGVyYXRpb24oaW50IGluZGV4KSB7DQogICAgICB0aGlzLmluZGV4ID0gaW5kZXg7DQog ICAgfQ0KDQogICAgcHVibGljIHZvaWQgcnVuKCkgew0KICAgICAgDQogICAgICBDb25maWd1cmF0 aW9uIGNvbmYgPSBuZXcgQ29uZmlndXJhdGlvbigpOw0KDQogICAgICBEaXN0cmlidXRlZEZpbGVT eXN0ZW0gZnMgPSBudWxsOw0KICAgICAgdHJ5IHsNCiAgICAgICAgZnMgPSAoRGlzdHJpYnV0ZWRG aWxlU3lzdGVtKSBGaWxlU3lzdGVtLmdldChjb25mKTsNCiAgICAgIH0gY2F0Y2ggKElPRXhjZXB0 aW9uIGUpIHsNCiAgICAgICAgTE9HLmVycm9yKGUuZ2V0TWVzc2FnZSgpLCBlKTsNCiAgICAgIH0N Cg0KICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICBTdHJpbmcg cm9vdCA9ICIvdXNlciIgKyB0aGlzLmluZGV4ICsgIi9kaXJfIiArIHIubmV4dEludCgxMDApICsg Ii9kaXJfIiArIHIubmV4dEludCgxMDApDQogICAgICAgICAgICAgICsgIi9kaXJfIiArICsgci5u ZXh0SW50KDEwMCkgKyIvIjsNCiAgICAgICAgICBQYXRoIHBhdGggPSBuZXcgUGF0aChyb290ICsg VVVJRC5yYW5kb21VVUlEKCkudG9TdHJpbmcoKSk7DQogICAgICAgICAgRlNEYXRhT3V0cHV0U3Ry ZWFtIG91dHB1dFN0cmVhbSA9IGZzLmNyZWF0ZShwYXRoLCB0cnVlLCAxMDI0LCAoc2hvcnQpIDMs IDEwNDg1NzYsIG51bGwpOw0KICAgICAgICAgIG91dHB1dFN0cmVhbS53cml0ZShuZXcgYnl0ZVsx MDI0XSk7DQogICAgICAgICAgb3V0cHV0U3RyZWFtLmhzeW5jKCk7DQogICAgICAgICAgb3V0cHV0 U3RyZWFtLndyaXRlKG5ldyBieXRlWzEwMjRdKTsNCiAgICAgICAgICBvdXRwdXRTdHJlYW0uaHN5 bmMoKTsNCiAgICAgICAgICBvdXRwdXRTdHJlYW0uY2xvc2UoKTsNCiAgICAgICAgICBmcy5zZXRS ZXBsaWNhdGlvbihwYXRoLCAoc2hvcnQpIDQpOw0KICAgICAgICAgIC8vIGZzLnNldE93bmVyKHBh dGgsICJtdXNhLmxsIiwgInN1cGVyZ3JvdXAiKTsNCiAgICAgICAgICBmcy5zZXRUaW1lcyhwYXRo LCBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSwgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkp Ow0KICAgICAgICAgIGZzLnNldFBlcm1pc3Npb24ocGF0aCwgRnNQZXJtaXNzaW9uLmdldERlZmF1 bHQoKSk7DQogICAgICAgICAgQmxvY2tMb2NhdGlvbltdIGxvYyA9IGZzLmdldEZpbGVCbG9ja0xv Y2F0aW9ucyhmcy5nZXRGaWxlU3RhdHVzKHBhdGgpLCAwLA0KICAgICAgICAgICAgSW50ZWdlci5N QVhfVkFMVUUpOw0KICAgICAgICANCiAgICAgICAgICBQYXRoIGRzdCA9IG5ldyBQYXRoKHBhdGgu dG9TdHJpbmcoKSArICJfcmVuYW1lIik7DQogICAgICAgICAgZnMucmVuYW1lKHBhdGgsIGRzdCk7 DQovLw0KICAgICAgICAgIFBhdGggZGlyID0gbmV3IFBhdGgocm9vdCArIHIubmV4dExvbmcoKSAr ICIvIik7DQogICAgICAgICAgZnMubWtkaXJzKGRpcik7DQogICAgICAgICAgZnMuc2V0UXVvdGEo ZGlyLCAxMDI0LCAxMDI0ICogMTAyNCAqIDEwMCk7DQogICAgICAgICAgZnMubGlzdFN0YXR1cyhk aXIpOw0KICAgICAgICAgIGNvdW50LmluY3JlbWVudEFuZEdldCgpOw0KICAgICANCiAgICAgICAg fSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KICAgICAgICAgIExPRy5lcnJvcihlLmdldE1lc3Nh Z2UoKSwgZSk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQoNCiAgfQ0KDQogIHB1YmxpYyB2 b2lkIHN0YXJ0KGludCBudW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7DQogICAgU3lzdGVtLm91dC5w cmludGxuKG51bSArICIgZ2V0IHRocmVhZHMiKTsNCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG51 bTsgaSsrKSB7DQogICAgICBGaWxlT3BlcmF0aW9uIGZpbGVPcGVyYXRpb24gPSBuZXcgRmlsZU9w ZXJhdGlvbihpKTsNCiAgICAgIGZpbGVPcGVyYXRpb24uc3RhcnQoKTsNCiAgICB9DQogICAgDQog ICAgU3RhdGlzdGljcyBzdGF0ID0gbmV3IFN0YXRpc3RpY3MoKTsNCiAgICBzdGF0LnN0YXJ0KCk7 DQogIH0NCg0KDQoNCiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gcykgdGhyb3dz IEV4Y2VwdGlvbiB7DQogICAgaW50IG51bSA9IDE7DQogICAgaWYocy5sZW5ndGggPT0gMSkgew0K ICAgICAgbnVtID0gSW50ZWdlci52YWx1ZU9mKHNbMF0pOw0KICAgIH0NCiAgICBFZGl0TG9nUGVy Zm9ybWFuY2UgZWRpdExvZ1BlcmZvcm1hbmNlID0gbmV3IEVkaXRMb2dQZXJmb3JtYW5jZSgpOw0K ICAgIGVkaXRMb2dQZXJmb3JtYW5jZS5zdGFydChudW0pOw0KDQogIH0NCn0NCg== --089e01229c827aa91f04e3d184f5--