Hi, While working on some code, I notices that there are quite some calls to pthread_mutex_lock() that do not check for the return value. There might be cases where obtaining the lock fails, and in many cases this would just be ignored. Needless to say, this might cause incorrect updates to the data structures that the pthread_mutex intends to prevent.
I have filed https://bugzilla.redhat.com/1370921 for this issue, but may add more dependent bugs for different components. What do other maintainers prefer to use for tracking corrections like this? Thanks, Niels $ git grep pthread_mutex_lock '*.[ch]' \ | grep -v '= pthread_mutex_lock' | cut -d : -f 1 | uniq -c \ | sort -rn 28 xlators/features/locks/src/posix.c 27 rpc/rpc-lib/src/rpc-clnt.c 23 rpc/rpc-transport/rdma/src/rdma.c 19 rpc/rpc-transport/socket/src/socket.c 19 libglusterfs/src/logging.c 19 libglusterfs/src/inode.c 16 xlators/features/bit-rot/src/bitd/bit-rot-scrub.c 16 xlators/features/bit-rot/src/bitd/bit-rot.c 15 libglusterfs/src/syncop.c 14 xlators/mount/fuse/src/fuse-bridge.c 14 rpc/rpc-lib/src/rpcsvc.c 13 xlators/features/locks/src/entrylk.c 11 xlators/features/leases/src/leases-internal.c 11 xlators/cluster/dht/src/tier.c 10 xlators/features/locks/src/inodelk.c 8 xlators/protocol/client/src/client.c 8 libglusterfs/src/fd.c 8 libglusterfs/src/event-epoll.c 7 xlators/protocol/client/src/client-handshake.c 7 xlators/cluster/dht/src/dht-rebalance.c 7 libglusterfs/src/event-poll.c 6 xlators/protocol/server/src/server.c 6 xlators/protocol/client/src/client-lk.c 6 libglusterfs/src/iobuf.c 5 xlators/features/upcall/src/upcall-internal.c 5 xlators/features/locks/src/reservelk.c 5 xlators/features/locks/src/common.c 5 xlators/features/locks/src/clear.c 5 xlators/features/changelog/lib/src/gf-changelog-reborp.c 5 rpc/rpc-lib/src/rpc-clnt-ping.c 4 xlators/protocol/client/src/client-rpc-fops.c 4 xlators/performance/io-threads/src/io-threads.c 4 xlators/performance/io-cache/src/io-cache.h 4 xlators/mgmt/glusterd/src/glusterd.c 4 xlators/features/bit-rot/src/bitd/bit-rot-scrub-status.c 4 xlators/cluster/ec/src/ec-heald.c 4 xlators/cluster/afr/src/afr-self-heald.c 4 libglusterfs/src/syncop-utils.c 4 cli/src/cli-cmd.c 4 api/src/glfs.c 3 xlators/storage/posix/src/posix.c 3 xlators/performance/read-ahead/src/read-ahead.h 3 xlators/mgmt/glusterd/src/glusterd-utils.c 3 xlators/features/protect/src/prot_dht.c 3 xlators/features/changelog/src/changelog-helpers.c 3 tools/gfind_missing_files/gcrawler.c 3 libglusterfs/src/event.c 3 libglusterfs/src/circ-buff.c 3 api/src/glfs-resolve.c 3 api/src/glfs-mgmt.c 3 api/src/glfs-master.c 3 api/src/glfs-handleops.c 3 api/src/glfs-fops.c 2 xlators/storage/posix/src/posix-helpers.c 2 xlators/mount/fuse/src/fuse-helpers.c 2 xlators/mgmt/glusterd/src/glusterd-syncop.c 2 xlators/mgmt/glusterd/src/glusterd-statedump.c 2 xlators/mgmt/glusterd/src/glusterd-mgmt.c 2 xlators/mgmt/glusterd/src/glusterd-hooks.c 2 xlators/features/index/src/index.c 2 xlators/features/changelog/src/changelog-ev-handle.c 2 xlators/features/changelog/lib/src/gf-changelog-journal-handler.c 2 xlators/features/bit-rot/src/stub/bit-rot-stub-helpers.c 2 xlators/features/bit-rot/src/stub/bit-rot-stub.c 2 xlators/experimental/fdl/src/fdl-tmpl.c 2 rpc/rpc-lib/src/rpc-transport.c 2 libglusterfs/src/throttle-tbf.c 2 libglusterfs/src/syncop.h 2 libglusterfs/src/rot-buffs.c 2 libglusterfs/src/locking.h 1 xlators/protocol/server/src/server-helpers.c 1 xlators/protocol/client/src/client-helpers.c 1 xlators/nfs/server/src/nfs-fops.c 1 xlators/features/trash/src/trash.c 1 xlators/features/leases/src/leases.h 1 xlators/features/changelog/lib/src/gf-changelog.c 1 xlators/cluster/dht/src/dht-shared.c 1 xlators/cluster/afr/src/afr-transaction.c 1 libglusterfs/src/statedump.c 1 extras/benchmarking/rdd.c 1 api/src/glfs-internal.h
signature.asc
Description: PGP signature
_______________________________________________ maintainers mailing list [email protected] http://www.gluster.org/mailman/listinfo/maintainers
