2016-10-07 4 views
0

Ich habe einen SQLOOP-Befehl, der Daten aus Oracle in Hive ORC-Tabelle mit den hcatalog-Parameter importiert.Ressource vorübergehend nicht verfügbar Futex während strace'ing sqoop Befehl

sqoop import -D oraoop.disabled=true -D mapred.child.java.opts="\-Djava.security.egd=file:/dev/../dev/urandom" --connect 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbs-dev-v.com)(PORT=1533))(CONNECT_DATA=(SERVICE_NAME=SDADCOM)(Server=Dedicated)))' --username phani --password pass --query "select ITEM_ID,ROLLUP_ITEM_ID,CPI_FORMAT1,CPI_FORMAT2,CPI_FORMAT3,CA_SNO_VALID_CNTRL,CUSTOM_SERIAL_FLAG,INVENTORY_ITEM_STATUS_CODE,LAST_DOS,ESN_CAPABILITY,ROLLUP_FLAG,PRODUCT_FAMILY,PRODUCT_SUB_GROUP,ERP_ITEM_TYPE,MFG_PRODUCT_CONFIG,MFG_SERIAL_FLAG,CA_CONFIG_VALID_CNTRL,CA_INS_VALID_CNTRL,ENABLED_FLAG,CREATED_BY,CREATION_DATE,LAST_UPDATED_BY,LAST_UPDATE_DATE,IB_PRODUCT_TYPE,USER_ITEM_TYPE,ITEM_CREATION_DATE,BASE_PRODUCT_ID,PRD_CATEGORY,TECHNOLOGY_GROUP,BUSINESS_UNIT,CA_DUPL_VALID_CNTRL,SKU_LIST_PRICE,SERV_FEE_VALUE_DOLLAR_AMT,MAX_SERIALIZED_CHILD,PHYSICAL_SN_LOCATION,CPI_LINK,TOTAL_INSTANCES,TOTAL_INSTANCES_ON_CONTRACT,GP_EXCLUSION,LAST_DOA,LAST_DOR from XXCCS_SCDC_PRODUCT_PROFILE where \$CONDITIONS" --split-by ITEM_ID --incremental lastmodified --check-column ITEM_ID -m 4 --hcatalog-home /opt/mapr/hive/hive-1.2/hcatalog --hcatalog-database installbase --hcatalog-table XXCCS_SCDC_PRODUCT_PROFILE --null-string '\\N' --null-non-string '\\N' --boundary-query 'select (select min(ITEM_ID) from XXCCS_SCDC_PRODUCT_PROFILE) as minid ,(select max(ITEM_ID) from XXCCS_SCDC_PRODUCT_PROFILE) as maxid from dual' --hcatalog-storage-stanza 'stored as orc' --verbose 

Während der Ausführung des Befehls i wurde die unten Ausnahme bekommen

16/10/06 04:26:20 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException 
java.lang.NullPointerException 
     at com.mapr.fs.MapRFileSystem.makeAbsolute(MapRFileSystem.java:1812) 
     at com.mapr.fs.MapRFileSystem.getMapRFileStatus(MapRFileSystem.java:1380) 
     at com.mapr.fs.MapRFileSystem.getFileStatus(MapRFileSystem.java:1035) 
     at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1460) 
     at org.apache.sqoop.tool.ImportTool.initIncrementalConstraints(ImportTool.java:320) 
     at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:488) 
     at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:606) 
     at org.apache.sqoop.Sqoop.run(Sqoop.java:143) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
     at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 
     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 
     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 
     at org.apache.sqoop.Sqoop.main(Sqoop.java:236) 

die Ausnahme Um zu verstehen, habe ich versucht, den Code als auch Konfigurationen zu optimieren, aber alles sieht gut aus. Um zu verstehen, was von der Kernel-Ebene aus geschieht, wenn es beim Öffnen einer Datei, die sich auf den Befehl bezieht, irgendwelche Probleme gibt, habe ich einen strace mit dem Befehl sqoop ausgeführt.

Von der Strace-Ausgabe fand ich, dass es einige Ressource gibt, die für lange Zeit nicht möglich war. Ich konnte die Ausgabe nicht voll verstehen. Kann mir jemand helfen, die Ressource zu finden?

Ausgang:

1783 stat("/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/org/apache/hadoop/util/ShutdownHookManager$HookEntry.class", 0x7fe6fe8465b0) = -1 ENOENT (No such file or directory) 
1783 lseek(93, 470334, SEEK_SET)  = 470334 
1783 read(93, "PK\3\4\24\0\10\0\10\0\240\254\350H\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0", 30) = 30 
1783 lseek(93, 470422, SEEK_SET)  = 470422 
1783 read(93, "\235\222\337k\323P\24\307\2777I\233\266fv\316\375\250Z\267\316NmS0\240\342\313\234\10C\261"..., 535) = 535 
1783 stat("/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 stat("/opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/hdfs/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 stat("/opt/mapr/sqoop/sqoop-1.4.6/conf/org/apache/sqoop/tool/ImportTool$1.class", <unfinished ...> 
1806 futex(0x7fe6f80bd254, FUTEX_WAIT_PRIVATE, 529, NULL <unfinished ...> 
1783 <... stat resumed> 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 stat("https://stackoverflow.com/users/phodisvc/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 stat("/opt/mapr/hbase/hbase-0.98.12/conf/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 stat("/opt/mapr/hbase/hbase-0.98.12/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1808 <... futex resumed>)    = -1 ETIMEDOUT (Connection timed out) 
1808 futex(0x7fe6f80c9f28, FUTEX_WAKE_PRIVATE, 1) = 0 
1808 futex(0x7fe6f80c9f54, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, {1475851368, 803245000}, ffffffff <unfinished ...> 
1783 stat("https://stackoverflow.com/users/phodisvc/hive/hddev-c01-edge-01/conf/org/apache/sqoop/tool/ImportTool$1.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory) 
1783 lseek(490, 863529, SEEK_SET)  = 863529 
1783 read(490, "PK\3\4\n\0\0\10\10\0\364\2=HV\366~\5\17\2\0\0\227\3\0\0(\0\0\0", 30) = 30 
1783 lseek(490, 863599, SEEK_SET)  = 863599 
1783 read(490, "\235\223\337N\23A\24\306\277i\227n[\27\273\"jA\24\204\25ZT6\30\257\324\30\rB\322\330"..., 527) = 527 
1783 write(2, "16/10/07 07:42:48 DEBUG manager."..., 266) = 266 
1783 write(2, "16/10/07 07:42:48 ERROR sqoop.Sq"..., 97) = 97 
1783 lseek(3, 27907755, SEEK_SET)  = 27907755 
1783 read(3, "PK\3\4\n\0\0\0\0\0[\226\222Cq\300q\301\273\2\0\0\273\2\0\0,\0\0\0", 30) = 30 
1783 lseek(3, 27907829, SEEK_SET)  = 27907829 
1783 read(3, "\312\376\272\276\0\0\0003\0!\1\0\6<init>\1\0\4Code\1\0\fInn"..., 699) = 699 
1783 lseek(3, 27906474, SEEK_SET)  = 27906474 
1783 read(3, "PK\3\4\n\0\0\0\0\0[\226\222CA\333\243\260\354\1\0\0\354\1\0\0-\0\0\0", 30) = 30 
1783 lseek(3, 27906549, SEEK_SET)  = 27906549 
1783 read(3, "\312\376\272\276\0\0\0003\0\31\1\0\3()V\1\0\6<init>\1\0\4Code"..., 492) = 492 
1783 lseek(3, 59447367, SEEK_SET)  = 59447367 
1783 read(3, "PK\3\4\n\0\0\0\0\0`\226\222C\224Mp\244\1\7\0\0\1\7\0\0&\0\0\0", 30) = 30 
1783 lseek(3, 59447435, SEEK_SET)  = 59447435 
1783 read(3, "\312\376\272\276\0\0\0003\0T\1\0\3()I\1\0\3()V\1\0\3()Z\1\0&("..., 1793) = 1793 
1783 write(2, "java.lang.NullPointerException", 30) = 30 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat com.mapr.fs.MapRFileSystem.m"..., 69) = 69 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat com.mapr.fs.MapRFileSystem.g"..., 74) = 74 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat com.mapr.fs.MapRFileSystem.g"..., 70) = 70 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.hadoop.fs.FileSys"..., 64) = 64 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.tool.Import"..., 84) = 84 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.tool.Import"..., 69) = 69 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.tool.Import"..., 61) = 61 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.Sqoop.run(S"..., 46) = 46 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.hadoop.util.ToolR"..., 61) = 61 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.Sqoop.runSq"..., 51) = 51 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.Sqoop.runTo"..., 50) = 50 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.Sqoop.runTo"..., 50) = 50 
1783 write(2, "\n", 1)     = 1 
1783 write(2, "\tat org.apache.sqoop.Sqoop.main("..., 47) = 47 
1783 write(2, "\n", 1)     = 1 
1783 lseek(3, 59446352, SEEK_SET)  = 59446352 
1783 read(3, "PK\3\4\n\0\0\0\0\0`\226\222C\203\312C\246\256\3\0\0\256\3\0\0+\0\0\0", 30) = 30 
1783 lseek(3, 59446425, SEEK_SET)  = 59446425 
1783 read(3, "\312\376\272\276\0\0\0003\0,\1\0\3()I\1\0\5()TK;\1\0&(Ljav"..., 942) = 942 
1783 lseek(3, 59443805, SEEK_SET)  = 59443805 
1783 read(3, "PK\3\4\n\0\0\0\0\0`\226\222C\372\241\273{\236\t\0\0\236\t\0\0007\0\0\0", 30) = 30 
1783 lseek(3, 59443890, SEEK_SET)  = 59443890 
1783 read(3, "\312\376\272\276\0\0\0003\0e\1\0\3()I\1\0\3()V\1\0\3()Z\1\0\5("..., 2462) = 2462 
1783 mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fe6d7d03000 
1783 clone(child_stack=0x7fe6d7e02ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fe6d7e039d0, tls=0x7fe6d7e03700, child_tidptr=0x7fe6d7e039d0) = 1862 
1862 set_robust_list(0x7fe6d7e039e0, 24) = 0 
1783 futex(0x7fe6f8024b54, FUTEX_WAIT_PRIVATE, 271, NULL <unfinished ...> 
1862 gettid()       = 1862 
1862 rt_sigprocmask(SIG_BLOCK, NULL, [QUIT], 8) = 0 
1862 rt_sigprocmask(SIG_UNBLOCK, [HUP INT ILL BUS FPE SEGV USR2 TERM], NULL, 8) = 0 
1862 rt_sigprocmask(SIG_BLOCK, [QUIT], NULL, 8) = 0 
1862 futex(0x7fe6f8024b54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8024b50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1783 <... futex resumed>)    = 0 
1862 futex(0x7fe6fa0bc654, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...> 
1783 futex(0x7fe6f8024b28, FUTEX_WAKE_PRIVATE, 1) = 0 
1783 futex(0x7fe6fa0bc654, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6fa0bc650, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1862 <... futex resumed>)    = 0 
1862 futex(0x7fe6fa0bc628, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1783 mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0 <unfinished ...> 
1862 <... futex resumed>)    = 0 
1783 <... mmap resumed>)    = 0x7fe6d7c02000 
1862 sched_getaffinity(1862, 32, <unfinished ...> 
1783 clone(<unfinished ...> 
1862 <... sched_getaffinity resumed> {fff, 0, 0, 0}) = 32 
1862 sched_getaffinity(1862, 32, {fff, 0, 0, 0}) = 32 
1783 <... clone resumed> child_stack=0x7fe6d7d01ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fe6d7d029d0, tls=0x7fe6d7d02700, child_tidptr=0x7fe6d7d029d0) = 1863 
1863 set_robust_list(0x7fe6d7d029e0, 24 <unfinished ...> 
1862 mmap(0x7fe6d7d03000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0 <unfinished ...> 
1863 <... set_robust_list resumed>) = 0 
1863 gettid(<unfinished ...> 
1862 <... mmap resumed>)    = 0x7fe6d7d03000 
1783 futex(0x7fe6f8024b54, FUTEX_WAIT_PRIVATE, 273, NULL <unfinished ...> 
1863 <... gettid resumed>)   = 1863 
1863 rt_sigprocmask(SIG_BLOCK, NULL, <unfinished ...> 
1862 mprotect(0x7fe6d7d03000, 12288, PROT_NONE <unfinished ...> 
1863 <... rt_sigprocmask resumed> [QUIT], 8) = 0 
1863 rt_sigprocmask(SIG_UNBLOCK, [HUP INT ILL BUS FPE SEGV USR2 TERM], <unfinished ...> 
1862 <... mprotect resumed>)   = 0 
1863 <... rt_sigprocmask resumed> NULL, 8) = 0 
1863 rt_sigprocmask(SIG_BLOCK, [QUIT], NULL, 8) = 0 
1863 futex(0x7fe6f8024b54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8024b50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1783 <... futex resumed>)    = 0 
1863 futex(0x7fe6fa0bdf54, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...> 
1862 futex(0x7fe6f8091e54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8091e50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1783 futex(0x7fe6f8024b28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1862 <... futex resumed>)    = 1 
1800 <... futex resumed>)    = 0 
1783 <... futex resumed>)    = 0 
1800 futex(0x7fe6f8091e28, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> 
1862 futex(0x7fe6f8091e28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1800 <... futex resumed>)    = -1 EAGAIN (Resource temporarily unavailable) 
1862 <... futex resumed>)    = 0 
1800 futex(0x7fe6f8091e28, FUTEX_WAKE_PRIVATE, 1) = 0 
1783 futex(0x7fe6fa0bdf54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6fa0bdf50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1800 mprotect(0x7fe6ff8e1000, 4096, PROT_READ <unfinished ...> 
1783 <... futex resumed>)    = 1 
1863 <... futex resumed>)    = 0 
1863 futex(0x7fe6fa0bdf28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1800 <... mprotect resumed>)   = 0 
1783 futex(0x7fe6f8024b54, FUTEX_WAIT_PRIVATE, 275, NULL <unfinished ...> 
1862 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fe6ff8e1e80} --- 
1863 <... futex resumed>)    = 0 
1800 mprotect(0x7fe6ff8e1000, 4096, PROT_READ|PROT_WRITE <unfinished ...> 
1862 futex(0x7fe6fa0bc854, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...> 
1800 <... mprotect resumed>)   = 0 
1863 sched_getaffinity(1863, 32, <unfinished ...> 
1800 futex(0x7fe6fa0bc854, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6fa0bc850, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1863 <... sched_getaffinity resumed> {fff, 0, 0, 0}) = 32 
1862 <... futex resumed>)    = 0 
1800 <... futex resumed>)    = 1 
1863 sched_getaffinity(1863, 32, <unfinished ...> 
1800 mprotect(0x7fe6ff8e2000, 4096, PROT_NONE <unfinished ...> 
1863 <... sched_getaffinity resumed> {fff, 0, 0, 0}) = 32 
1862 futex(0x7fe6fa0bc828, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1863 mmap(0x7fe6d7c02000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0 <unfinished ...> 
1800 <... mprotect resumed>)   = 0 
1862 <... futex resumed>)    = 0 
1863 <... mmap resumed>)    = 0x7fe6d7c02000 
1863 mprotect(0x7fe6d7c02000, 12288, PROT_NONE) = 0 
1863 futex(0x7fe6fa0bdf54, FUTEX_WAIT_PRIVATE, 3, NULL <unfinished ...> 
1862 rt_sigreturn(<unfinished ...> 
1800 sched_yield(<unfinished ...> 
1862 <... rt_sigreturn resumed>)  = 140630106709632 
1800 <... sched_yield resumed>)  = 0 
1862 futex(0x7fe6fa0bc654, FUTEX_WAIT_PRIVATE, 3, NULL <unfinished ...> 
1800 sched_yield()      = 0 
1800 futex(0x7fe6fa0bc654, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6fa0bc650, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1800 futex(0x7fe6f8091e54, FUTEX_WAIT_PRIVATE, 5, NULL <unfinished ...> 
1862 <... futex resumed>)    = 0 
1862 futex(0x7fe6fa0bc628, FUTEX_WAKE_PRIVATE, 1) = 0 
1862 futex(0x7fe6f8024b54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8024b50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1783 <... futex resumed>)    = 0 
1862 futex(0x7fe6fa0bc654, FUTEX_WAIT_PRIVATE, 5, NULL <unfinished ...> 
1783 futex(0x7fe6f8024b28, FUTEX_WAKE_PRIVATE, 1) = 0 
1783 futex(0x7fe6f8091e54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8091e50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1800 <... futex resumed>)    = 0 
1783 futex(0x7fe6f8024b54, FUTEX_WAIT_PRIVATE, 277, NULL <unfinished ...> 
1800 futex(0x7fe6f8091e28, FUTEX_WAKE_PRIVATE, 1) = 0 
1800 futex(0x7fe6f803c954, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f803c950, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1788 <... futex resumed>)    = 0 
1800 futex(0x7fe6f803c928, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1788 futex(0x7fe6f803c928, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> 
1800 <... futex resumed>)    = 0 
1788 <... futex resumed>)    = -1 EAGAIN (Resource temporarily unavailable) 
1800 futex(0x7fe6f8091e54, FUTEX_WAIT_PRIVATE, 7, NULL <unfinished ...> 
1788 futex(0x7fe6f803c928, FUTEX_WAKE_PRIVATE, 1) = 0 
1788 futex(0x7fe6f803aa54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f803aa50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1787 <... futex resumed>)    = 0 
1787 futex(0x7fe6f803aa28, FUTEX_WAKE_PRIVATE, 1) = 0 
1787 futex(0x7fe6f8048154, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8048150, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1797 <... futex resumed>)    = 0 
1787 <... futex resumed>)    = 1 
1797 futex(0x7fe6f8048128, FUTEX_WAKE_PRIVATE, 1) = 0 
1797 futex(0x7fe6f8040654, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8040650, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1793 <... futex resumed>)    = 0 
1793 futex(0x7fe6f8040628, FUTEX_WAKE_PRIVATE, 1) = 0 
1793 futex(0x7fe6f8046354, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8046350, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1796 <... futex resumed>)    = 0 
1793 <... futex resumed>)    = 1 
1796 futex(0x7fe6f8046328, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> 
1793 futex(0x7fe6f8046328, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1796 <... futex resumed>)    = -1 EAGAIN (Resource temporarily unavailable) 
1793 <... futex resumed>)    = 0 
1796 futex(0x7fe6f8046328, FUTEX_WAKE_PRIVATE, 1) = 0 
1796 futex(0x7fe6f804bf54, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f804bf50, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1799 <... futex resumed>)    = 0 
1799 futex(0x7fe6f804bf28, FUTEX_WAKE_PRIVATE, 1) = 0 
1799 futex(0x7fe6f8044454, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8044450, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1795 <... futex resumed>)    = 0 
1795 futex(0x7fe6f8044428, FUTEX_WAKE_PRIVATE, 1) = 0 
1795 futex(0x7fe6f8042554, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8042550, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1794 <... futex resumed>)    = 0 
1794 futex(0x7fe6f8042528, FUTEX_WAKE_PRIVATE, 1) = 0 
1794 futex(0x7fe6f803e754, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f803e750, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 
1792 <... futex resumed>)    = 0 
1792 futex(0x7fe6f803e728, FUTEX_WAKE_PRIVATE, 1) = 0 
1792 futex(0x7fe6f804a054, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f804a050, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1798 <... futex resumed>)    = 0 
1792 <... futex resumed>)    = 1 
1798 futex(0x7fe6f804a028, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> 
1792 futex(0x7fe6f804a028, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> 
1798 <... futex resumed>)    = -1 EAGAIN (Resource temporarily unavailable) 
1792 <... futex resumed>)    = 0 
1798 futex(0x7fe6f804a028, FUTEX_WAKE_PRIVATE, 1) = 0 
1799 futex(0x7fe6f804bf54, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1798 futex(0x7fe6f804a054, FUTEX_WAIT_PRIVATE, 13, NULL <unfinished ...> 
1797 futex(0x7fe6f8044454, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fe6f8044450, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...> 
1796 futex(0x7fe6f8046354, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1795 futex(0x7fe6f8044454, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1794 futex(0x7fe6f8042554, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1793 futex(0x7fe6f8040654, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1792 futex(0x7fe6f803e754, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1788 futex(0x7fe6f803c954, FUTEX_WAIT_PRIVATE, 11, NULL <unfinished ...> 
1787 futex(0x7fe6f803aa54, FUTEX_WAIT_PRIVATE, 13, NULL <unfinished ...> 
1795 <... futex resumed>)    = -1 EAGAIN (Resource temporarily unavailable) 

Entschuldigung für die lange output.If andere Informationen erforderlich ist, lassen Sie es mich wissen.

Antwort

1

Ich schrieb eine kurze strace cheat sheet, die erläutert, wie Sie strace und über die Anrufe zu futex verwenden, die Sie betrachten möchten.

Der Systemaufruf futex wird zum Implementieren von Synchronisationsprimitiven wie Mutex, Semaphoren, Leser-Schreiber-Sperren usw. verwendet. Es ist nichts falsch mit der Ausgabe, die Sie oben gepostet haben; es zeigt an, dass Sie wahrscheinlich den Hauptthread des Programms verfolgen, das darauf wartet, dass eine Sperre freigegeben wird.

Ich würde empfehlen, Ihre strace Befehl mit -f, um untergeordnete Prozesse zurückzuverfolgen. Auch wenn Ihre Anwendung nicht explizit zusätzliche Threads erstellt, ist es möglich, dass die Java Virtual Machine intern zusätzliche Threads erstellt.

Verwandte Themen