strace'ing sqoop 命令时资源暂时不可用 futex

Resource temporarily unavailable futex while strace'ing sqoop command

我有一个 sqoop 命令,它使用 hcatalog 参数将数据从 Oracle 导入到 hive orc table。

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

执行命令时出现以下异常

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)

为了理解异常,我尝试调整代码和配置,但一切看起来都很好。如果在打开与命令相关的文件时出现任何问题,为了了解内核级别发生了什么,我对 sqoop 命令进行了 strace。

从 strace 输出中我发现有一些资源长时间无法使用。我无法理解完整的输出。谁能帮我找到资源。

输出:

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[=12=][=12=][=12=]040H[=12=][=12=][=12=][=12=][=12=][=12=][=12=][=12=][=12=][=12=][=12=][=12=]:[=12=][=12=][=12=]", 30) = 30
1783  lseek(93, 470422, SEEK_SET)       = 470422
1783  read(93, "527k3P777I36fv650Z76NmS00234C1"..., 535) = 535
1783  stat("/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/org/apache/sqoop/tool/ImportTool.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.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory)
1783  stat("/opt/mapr/sqoop/sqoop-1.4.6/conf/org/apache/sqoop/tool/ImportTool.class",  <unfinished ...>
1806  futex(0x7fe6f80bd254, FUTEX_WAIT_PRIVATE, 529, NULL <unfinished ...>
1783  <... stat resumed> 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory)
1783  stat("/users/phodisvc/org/apache/sqoop/tool/ImportTool.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory)
1783  stat("/opt/mapr/hbase/hbase-0.98.12/conf/org/apache/sqoop/tool/ImportTool.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory)
1783  stat("/opt/mapr/hbase/hbase-0.98.12/org/apache/sqoop/tool/ImportTool.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("/users/phodisvc/hive/hddev-c01-edge-01/conf/org/apache/sqoop/tool/ImportTool.class", 0x7fe6fe8463f0) = -1 ENOENT (No such file or directory)
1783  lseek(490, 863529, SEEK_SET)      = 863529
1783  read(490, "PK\n[=12=][=12=][=12=]4=HV6~[=12=][=12=]7[=12=][=12=]([=12=][=12=][=12=]", 30) = 30
1783  lseek(490, 863599, SEEK_SET)      = 863599
1783  read(490, "537NA67i7n[3\"jA4ZT674\rB20"..., 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\n[=12=][=12=][=12=][=12=][=12=][62Cq0q13[=12=][=12=]3[=12=][=12=],[=12=][=12=][=12=]", 30) = 30
1783  lseek(3, 27907829, SEEK_SET)      = 27907829
1783  read(3, "2626[=12=][=12=][=12=]03[=12=]![=12=]<init>[=12=]Code[=12=]\fInn"..., 699) = 699
1783  lseek(3, 27906474, SEEK_SET)      = 27906474
1783  read(3, "PK\n[=12=][=12=][=12=][=12=][=12=][62CA3304[=12=][=12=]4[=12=][=12=]-[=12=][=12=][=12=]", 30) = 30
1783  lseek(3, 27906549, SEEK_SET)      = 27906549
1783  read(3, "2626[=12=][=12=][=12=]03[=12=][=12=]()V[=12=]<init>[=12=]Code"..., 492) = 492
1783  lseek(3, 59447367, SEEK_SET)      = 59447367
1783  read(3, "PK\n[=12=][=12=][=12=][=12=][=12=]`62C4Mp4[=12=][=12=][=12=][=12=]&[=12=][=12=][=12=]", 30) = 30
1783  lseek(3, 59447435, SEEK_SET)      = 59447435
1783  read(3, "2626[=12=][=12=][=12=]03[=12=]T[=12=]()I[=12=]()V[=12=]()Z[=12=]&("..., 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\n[=12=][=12=][=12=][=12=][=12=]`62C32C66[=12=][=12=]6[=12=][=12=]+[=12=][=12=][=12=]", 30) = 30
1783  lseek(3, 59446425, SEEK_SET)      = 59446425
1783  read(3, "2626[=12=][=12=][=12=]03[=12=],[=12=]()I[=12=]()TK;[=12=]&(Ljav"..., 942) = 942
1783  lseek(3, 59443805, SEEK_SET)      = 59443805
1783  read(3, "PK\n[=12=][=12=][=12=][=12=][=12=]`62C213{6\t[=12=][=12=]6\t[=12=][=12=]07[=12=][=12=][=12=]", 30) = 30
1783  lseek(3, 59443890, SEEK_SET)      = 59443890
1783  read(3, "2626[=12=][=12=][=12=]03[=12=]e[=12=]()I[=12=]()V[=12=]()Z[=12=]("..., 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)

很抱歉output.If需要任何其他信息请告诉我。

我写了一个简短的 strace cheat sheet 来解释如何使用 strace 以及对 futex 的调用,您可能想看看。

futex 系统调用用于实现同步原语,如互斥体、信号量、reader-writer 锁等。您在上面发布的输出没有任何问题;它表明您可能正在跟踪正在等待释放锁的程序的主线程。

我建议重新 运行 您的 strace 命令和 -f 来跟踪子进程。即使您的应用程序没有显式创建额外的线程,Java 虚拟机也可能会在内部创建额外的线程。