Bug 1328692

Summary: trace-cmd split -e 1 segment fault on wakeup trace data
Product: Red Hat Enterprise Linux 6 Reporter: Chunyu Hu <chuhu>
Component: trace-cmdAssignee: John Kacur <jkacur>
Status: CLOSED ERRATA QA Contact: Ziqian SUN (Zamir) <zsun>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.8CC: bhu, zsun
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-21 09:33:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1346447    

Description Chunyu Hu 2016-04-20 05:00:45 UTC
Description of problem:

trace-cmd split -e 1 got segment fault when split wakeup trace data.

Version-Release number of selected component (if applicable):

[root@ibm-x3850x5-02 ~]# rpm -q trace-cmd
trace-cmd-2.2.4-3.el6.x86_64

How reproducible:

Steps to Reproduce:
1. [root@ibm-x3850x5-02 ~]# rpm -q trace-cmd
trace-cmd-2.2.4-3.el6.x86_64

2. trace-cmd record -p wakeup sleep 5
3. trace-cmd split -e 1

Actual results:

segment fault.

Expected results:

should be fixed.

Additional info:
bug1198942

Comment 1 John Kacur 2016-07-21 21:18:51 UTC
gdb) r split -e 1
Starting program: /root/tmp.jkacur/trace-cmd/trace-cmd split -e 1
version = 6
trace-cmd: No such file or directory
  [timer:hrtimer_start] unknown op '{'
  [timer:hrtimer_expire_entry] unknown op '{'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  Error: expected 'field' but read 'print'
  [scsi:scsi_dispatch_cmd_timeout] function scsi_trace_parse_cdb not defined
  [scsi:scsi_dispatch_cmd_start] function scsi_trace_parse_cdb not defined
  [scsi:scsi_dispatch_cmd_error] function scsi_trace_parse_cdb not defined
  [scsi:scsi_dispatch_cmd_done] function scsi_trace_parse_cdb not defined
  [jbd2:jbd2_submit_inode_data] function jbd2_dev_to_name not defined
  [jbd2:jbd2_start_commit] function jbd2_dev_to_name not defined
  [jbd2:jbd2_run_stats] function jbd2_dev_to_name not defined
  [jbd2:jbd2_end_commit] function jbd2_dev_to_name not defined
  [jbd2:jbd2_drop_transaction] function jbd2_dev_to_name not defined
  [jbd2:jbd2_commit_logging] function jbd2_dev_to_name not defined
  [jbd2:jbd2_commit_locking] function jbd2_dev_to_name not defined
  [jbd2:jbd2_commit_flushing] function jbd2_dev_to_name not defined
  [jbd2:jbd2_checkpoint_stats] function jbd2_dev_to_name not defined
  [jbd2:jbd2_checkpoint] function jbd2_dev_to_name not defined
  [ext4:ext4_writepage] function jbd2_dev_to_name not defined
  [ext4:ext4_writeback_write_end] function jbd2_dev_to_name not defined
  [ext4:ext4_write_begin] function jbd2_dev_to_name not defined
  [ext4:ext4_update_reserve_space] function jbd2_dev_to_name not defined
  [ext4:ext4_sync_fs] function jbd2_dev_to_name not defined
  [ext4:ext4_sync_file] function jbd2_dev_to_name not defined
  [ext4:ext4_request_inode] function jbd2_dev_to_name not defined
  [ext4:ext4_request_blocks] function jbd2_dev_to_name not defined
  [ext4:ext4_ordered_write_end] function jbd2_dev_to_name not defined
  [ext4:ext4_mballoc_prealloc] function jbd2_dev_to_name not defined
  [ext4:ext4_mballoc_free] function jbd2_dev_to_name not defined
  [ext4:ext4_mballoc_discard] function jbd2_dev_to_name not defined
  [ext4:ext4_mballoc_alloc] function jbd2_dev_to_name not defined
  [ext4:ext4_mb_release_inode_pa] function jbd2_dev_to_name not defined
  [ext4:ext4_mb_release_group_pa] function jbd2_dev_to_name not defined
  [ext4:ext4_mb_new_inode_pa] function jbd2_dev_to_name not defined
  [ext4:ext4_mb_new_group_pa] function jbd2_dev_to_name not defined
  [ext4:ext4_mb_discard_preallocations] function jbd2_dev_to_name not defined
  [ext4:ext4_journalled_write_end] function jbd2_dev_to_name not defined
  [ext4:ext4_free_inode] function jbd2_dev_to_name not defined
  [ext4:ext4_free_blocks] function jbd2_dev_to_name not defined
  [ext4:ext4_discard_preallocations] function jbd2_dev_to_name not defined
  [ext4:ext4_discard_blocks] function jbd2_dev_to_name not defined
  [ext4:ext4_da_writepages_result] function jbd2_dev_to_name not defined
  [ext4:ext4_da_writepages] function jbd2_dev_to_name not defined
  [ext4:ext4_da_write_pages] function jbd2_dev_to_name not defined
  [ext4:ext4_da_write_end] function jbd2_dev_to_name not defined
  [ext4:ext4_da_write_begin] function jbd2_dev_to_name not defined
  [ext4:ext4_allocate_inode] function jbd2_dev_to_name not defined
  [ext4:ext4_allocate_blocks] function jbd2_dev_to_name not defined
  [ext4:ext4_alloc_da_blocks] function jbd2_dev_to_name not defined

Program received signal SIGSEGV, Segmentation fault.
0x000000000042a0e0 in tracecmd_peek_data (handle=0x653010, cpu=0)
    at /root/tmp.jkacur/trace-cmd/trace-input.c:1415
1415		page = handle->cpu_data[cpu].page;
(gdb) bt
#0  0x000000000042a0e0 in tracecmd_peek_data (handle=0x653010, cpu=0)
    at /root/tmp.jkacur/trace-cmd/trace-input.c:1415
#1  0x000000000042a4fc in tracecmd_read_next_data (handle=0x653010, 
    rec_cpu=0x7fffffffdf40) at /root/tmp.jkacur/trace-cmd/trace-input.c:1538
#2  0x000000000040dea3 in read_record (handle=0x653010, percpu=0, 
    cpu=0x7fffffffdf40) at /root/tmp.jkacur/trace-cmd/trace-split.c:174
#3  0x000000000040e009 in parse_cpu (handle=0x653010, cpu_data=0x103ff80, 
    start=0, end=0, count_limit=1, percpu=0, cpu=-1, type=SPLIT_EVENTS)
    at /root/tmp.jkacur/trace-cmd/trace-split.c:228
#4  0x000000000040e6f0 in parse_file (handle=0x653010, 
    output_file=0xf5c050 "trace.dat.1", start=0, end=0, percpu=0, count=1, 
    type=SPLIT_EVENTS) at /root/tmp.jkacur/trace-cmd/trace-split.c:383
#5  0x000000000040ed5e in trace_split (argc=4, argv=0x7fffffffe1f8)
    at /root/tmp.jkacur/trace-cmd/trace-split.c:536
#6  0x000000000040656a in main (argc=4, argv=0x7fffffffe1f8)
    at /root/tmp.jkacur/trace-cmd/trace-cmd.c:223
(gdb)

Comment 3 John Kacur 2016-09-14 11:05:34 UTC
Fixed in trace-cmd-2.2.4-4 and up

Now if the user attempts the above, the user gets the following message instead of a fault
trace-cmd split does not work with latency traces

Comment 7 errata-xmlrpc 2017-03-21 09:33:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2017-0617.html