There are some invalid reads reported by valgrind on a 2x2 distribute volume. Operations performed were, rm -rf of a directory, then fs-perf test. Invalid read of size 4 ==1884== at 0x62B5DE2: fuse_readdir_cbk (fuse-bridge.c:2103) ==1884== by 0x9223F14: io_stats_readdir_cbk (io-stats.c:1319) ==1884== by 0x900BCAD: sp_readdir_cbk (stat-prefetch.c:1354) ==1884== by 0x4C3C1CB: default_readdirp_cbk (defaults.c:396) ==1884== by 0x4C3C1CB: default_readdirp_cbk (defaults.c:396) ==1884== by 0x4C3C1CB: default_readdirp_cbk (defaults.c:396) ==1884== by 0x4C3C1CB: default_readdirp_cbk (defaults.c:396) ==1884== by 0x4C3C1CB: default_readdirp_cbk (defaults.c:396) ==1884== by 0x85AEF0E: dht_readdirp_cbk (dht-common.c:3120) ==1884== by 0x83383B1: afr_readdirp_cbk (afr-dir-read.c:636) ==1884== by 0x810F55C: client3_1_readdirp_cbk (client3_1-fops.c:1939) ==1884== by 0x4E88364: rpc_clnt_handle_reply (rpc-clnt.c:741) ==1884== Address 0x6295a78 is 152 bytes inside a block of size 154 alloc'd ==1884== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==1884== by 0x4C55B40: __gf_calloc (mem-pool.h:83) ==1884== by 0x4C56133: gf_dirent_for_name (gf-dirent.c:59) ==1884== by 0x85AEC45: dht_readdirp_cbk (dht-common.c:3054) ==1884== by 0x83383B1: afr_readdirp_cbk (afr-dir-read.c:636) ==1884== by 0x810F55C: client3_1_readdirp_cbk (client3_1-fops.c:1939) ==1884== by 0x4E88364: rpc_clnt_handle_reply (rpc-clnt.c:741) ==1884== by 0x4E885B8: rpc_clnt_notify (rpc-clnt.c:854) ==1884== by 0x4E83457: rpc_transport_notify (rpc-transport.c:919) ==1884== by 0x72D6253: socket_event_poll_in (socket.c:1647) ==1884== by 0x72D6336: socket_event_handler (socket.c:1762) ==1884== by 0x4C54503: event_dispatch_epoll (event.c:794)
There is one more set of Invalid reads. Thread 4: ==12247== Invalid read of size 4 ==12247== at 0x85E6BDD: dht_stat (dht-common.c:1434) ==12247== by 0x881A009: quota_stat (quota.c:2132) ==12247== by 0x8A26F6D: wb_stat (write-behind.c:753) ==12247== by 0x4C3C19F: default_stat (defaults.c:1147) ==12247== by 0x4C3C19F: default_stat (defaults.c:1147) ==12247== by 0x94A3484: io_stats_stat (io-stats.c:1759) ==12247== by 0x62CF92C: fuse_getattr_resume (fuse-bridge.c:448) ==12247== by 0x62CD384: fuse_resolve_done (fuse-resolve.c:617) ==12247== by 0x62CD45A: fuse_resolve_all (fuse-resolve.c:647) ==12247== by 0x62CD2F4: fuse_resolve (fuse-resolve.c:597) ==12247== by 0x62CD431: fuse_resolve_all (fuse-resolve.c:643) ==12247== by 0x62CD096: fuse_resolve_inode (fuse-resolve.c:521) ==12247== Address 0xbb012a0 is 0 bytes inside a block of size 72 free'd ==12247== at 0x4A0595D: free (vg_replace_malloc.c:366) ==12247== by 0x4C5ACBC: __gf_free (mem-pool.c:259) ==12247== by 0x85CE859: dht_layout_unref (dht-layout.c:142) ==12247== by 0x8601C17: dht_forget (dht-common.c:5132) ==12247== by 0x4C41E1E: __inode_destroy (inode.c:330) ==12247== by 0x4C439E7: inode_table_prune (inode.c:1136) ==12247== by 0x4C42299: inode_unref (inode.c:457) ==12247== by 0x4C2B69A: loc_wipe (xlator.c:1698) ==12247== by 0x83A7341: afr_local_cleanup (afr-common.c:390) ==12247== by 0x8369EED: afr_stat_cbk (afr-inode-read.c:229) ==12247== by 0x812D59B: client3_1_stat_cbk (client3_1-fops.c:413) ==12247== by 0x4E95014: rpc_clnt_handle_reply (rpc-clnt.c:741)
*** Bug 3735 has been marked as a duplicate of this bug. ***
CHANGE: http://review.gluster.com/687 (Possible situation is a forget call which unref's the inode, and the) merged in release-3.2 by Vijay Bellur (vijay)
*** Bug 2373 has been marked as a duplicate of this bug. ***
*** Bug 3469 has been marked as a duplicate of this bug. ***
CHANGE: http://review.gluster.com/694 (layout->cnt might be modified in cbk's or different threads, which) merged in master by Vijay Bellur (vijay)
*** Bug 768324 has been marked as a duplicate of this bug. ***
Checked with glusterfs-3.3.0qa40. This bug is not seen.