Adar Dembo has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/15543 )

Change subject: iwyu: codebase-wide fixes based on libcpp
......................................................................

iwyu: codebase-wide fixes based on libcpp

These were generated by running iwyu.py --fix --all followed by some
massaging of the IWYU mapping files.

Note: kudu/client/shared_ptr.h handling isn't great:
- IWYU removes shared_ptr.h unless it is annotated with a "keep" pragma.
- IWYU adds <memory> if the file references a class from kudu::client::sp.

This appears to be because IWYU, after processing the 'using' statements in
shared_ptr.h, considers the classes in kudu::client::sp to be exactly the same
as the equivalent std classes. As such, IWYU concludes that shared_ptr.h
offers nothing of value and should be removed, and that <memory> should be
added because e.g. kudu::client::sp::shared_ptr is actually std::shared_ptr.

One might think to address the second issue by adding an "export" pragma to
shared_ptr.h's inclusion of <memory>. Doing that creates another problem:
IWYU removes <memory> from any file that includes shared_ptr.h, which is
unsafe in non-libc++ builds where kudu::client::sp maps to std::tr1.

The only way I can think of safely addressing this is by copying a non-std
implementation of <memory> into shared_ptr.h, to be used only when running
IWYU. Excising the necessary STL bits and bringing them into Kudu just for
this problem seems like overkill, though, so we'll just live with the "keep"
pragmas and the extra inclusions of <memory>.

Change-Id: Ic248ba1511347d79cc6ea38140de888e5ac13354
Reviewed-on: http://gerrit.cloudera.org:8080/15543
Reviewed-by: Alexey Serbin <aser...@cloudera.com>
Tested-by: Kudu Jenkins
---
M build-support/iwyu/mappings/boost-extra.imp
A build-support/iwyu/mappings/openssl.imp
M build-support/iwyu/mappings/system-linux.imp
M src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc
M src/kudu/cfile/binary_dict_block.cc
M src/kudu/cfile/binary_plain_block.cc
M src/kudu/cfile/cfile-test.cc
M src/kudu/cfile/cfile_reader.h
M src/kudu/cfile/cfile_writer.h
M src/kudu/cfile/index-test.cc
M src/kudu/cfile/index_btree.cc
M src/kudu/cfile/type_encodings.cc
M src/kudu/client/authz_token_cache.cc
M src/kudu/client/batcher.cc
M src/kudu/client/batcher.h
M src/kudu/client/client-internal.cc
M src/kudu/client/client-internal.h
M src/kudu/client/client-test-util.cc
M src/kudu/client/client-test-util.h
M src/kudu/client/client-test.cc
M src/kudu/client/client-unittest.cc
M src/kudu/client/client.cc
M src/kudu/client/client.h
M src/kudu/client/meta_cache.cc
M src/kudu/client/partitioner-internal.cc
M src/kudu/client/partitioner-internal.h
M src/kudu/client/scan_token-internal.cc
M src/kudu/client/schema.cc
M src/kudu/client/session-internal.cc
M src/kudu/client/shared_ptr.h
M src/kudu/client/table-internal.h
M src/kudu/client/table_alterer-internal.cc
M src/kudu/client/write_op.cc
M src/kudu/client/write_op.h
M src/kudu/clock/builtin_ntp-internal.cc
M src/kudu/clock/builtin_ntp.cc
M src/kudu/clock/hybrid_clock.cc
M src/kudu/clock/logical_clock.cc
M src/kudu/clock/ntp-test.cc
M src/kudu/codegen/codegen-test.cc
M src/kudu/codegen/compilation_manager.cc
M src/kudu/codegen/module_builder.cc
M src/kudu/common/column_predicate-test.cc
M src/kudu/common/column_predicate.h
M src/kudu/common/columnblock.h
M src/kudu/common/encoded_key-test.cc
M src/kudu/common/generic_iterators-test.cc
M src/kudu/common/id_mapping.h
M src/kudu/common/key_encoder.cc
M src/kudu/common/key_util.cc
M src/kudu/common/partition-test.cc
M src/kudu/common/partition.cc
M src/kudu/common/schema-test.cc
M src/kudu/common/schema.h
M src/kudu/common/types-test.cc
M src/kudu/common/types.cc
M src/kudu/consensus/consensus_meta-test.cc
M src/kudu/consensus/consensus_meta_manager-stress-test.cc
M src/kudu/consensus/consensus_peers-test.cc
M src/kudu/consensus/consensus_peers.cc
M src/kudu/consensus/consensus_queue-test.cc
M src/kudu/consensus/log-test.cc
M src/kudu/consensus/log.cc
M src/kudu/consensus/log_util.cc
M src/kudu/consensus/mt-log-test.cc
M src/kudu/consensus/opid_util.cc
M src/kudu/consensus/quorum_util-test.cc
M src/kudu/consensus/quorum_util.cc
M src/kudu/consensus/raft_consensus_quorum-test.cc
M src/kudu/experiments/merge-test.cc
M src/kudu/experiments/rwlock-perf.cc
M src/kudu/fs/data_dirs.cc
M src/kudu/fs/dir_manager.cc
M src/kudu/fs/error_manager.h
M src/kudu/fs/fs_manager-test.cc
M src/kudu/fs/fs_manager.cc
M src/kudu/fs/fs_manager.h
M src/kudu/gutil/hash/city.cc
M src/kudu/gutil/hash/hash.h
M src/kudu/gutil/stringprintf.cc
M src/kudu/gutil/strings/escaping.h
M src/kudu/gutil/strings/split.cc
M src/kudu/gutil/strings/stringpiece.cc
M src/kudu/gutil/strings/stringpiece.h
M src/kudu/gutil/strings/util.h
M src/kudu/gutil/sysinfo.cc
M src/kudu/gutil/utf/rune.c
M src/kudu/hms/hms_catalog-test.cc
M src/kudu/hms/hms_catalog.cc
M src/kudu/hms/hms_client-test.cc
M src/kudu/hms/hms_client.cc
M src/kudu/integration-tests/alter_table-randomized-test.cc
M src/kudu/integration-tests/alter_table-test.cc
M src/kudu/integration-tests/auth_token_expire-itest.cc
M src/kudu/integration-tests/catalog_manager_tsk-itest.cc
M src/kudu/integration-tests/client-negotiation-failover-itest.cc
M src/kudu/integration-tests/client_failover-itest.cc
M src/kudu/integration-tests/cluster_itest_util.cc
M src/kudu/integration-tests/cluster_verifier.cc
M src/kudu/integration-tests/consensus_peer_health_status-itest.cc
M src/kudu/integration-tests/create-table-itest.cc
M src/kudu/integration-tests/delete_table-itest.cc
M src/kudu/integration-tests/delete_tablet-itest.cc
M src/kudu/integration-tests/dense_node-itest.cc
M src/kudu/integration-tests/disk_failure-itest.cc
M src/kudu/integration-tests/disk_reservation-itest.cc
M src/kudu/integration-tests/hms_itest-base.cc
M src/kudu/integration-tests/linked_list-test-util.h
M src/kudu/integration-tests/location_assignment-itest.cc
M src/kudu/integration-tests/log-rolling-itest.cc
M src/kudu/integration-tests/maintenance_mode-itest.cc
M src/kudu/integration-tests/master_cert_authority-itest.cc
M src/kudu/integration-tests/master_failover-itest.cc
M src/kudu/integration-tests/master_hms-itest.cc
M src/kudu/integration-tests/master_replication-itest.cc
M src/kudu/integration-tests/memory_gc-itest.cc
M src/kudu/integration-tests/mini_cluster_fs_inspector.cc
M src/kudu/integration-tests/minidump_generation-itest.cc
M src/kudu/integration-tests/multidir_cluster-itest.cc
M src/kudu/integration-tests/raft_config_change-itest.cc
M src/kudu/integration-tests/raft_consensus-itest.cc
M src/kudu/integration-tests/raft_consensus_election-itest.cc
M src/kudu/integration-tests/raft_consensus_failure_detector-imc-itest.cc
M src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc
M src/kudu/integration-tests/registration-test.cc
M src/kudu/integration-tests/security-faults-itest.cc
M src/kudu/integration-tests/security-itest.cc
M src/kudu/integration-tests/security-master-auth-itest.cc
M src/kudu/integration-tests/stop_tablet-itest.cc
M src/kudu/integration-tests/table_locations-itest.cc
M src/kudu/integration-tests/tablet_copy-itest.cc
M src/kudu/integration-tests/tablet_copy_client_session-itest.cc
M src/kudu/integration-tests/tablet_history_gc-itest.cc
M src/kudu/integration-tests/tablet_replacement-itest.cc
M src/kudu/integration-tests/tablet_server_quiescing-itest.cc
M src/kudu/integration-tests/test_workload.h
M src/kudu/integration-tests/timestamp_advancement-itest.cc
M src/kudu/integration-tests/tombstoned_voting-imc-itest.cc
M src/kudu/integration-tests/tombstoned_voting-itest.cc
M src/kudu/integration-tests/tombstoned_voting-stress-test.cc
M src/kudu/integration-tests/ts_itest-base.cc
M src/kudu/integration-tests/ts_recovery-itest.cc
M src/kudu/integration-tests/webserver-crawl-itest.cc
M src/kudu/master/auto_rebalancer-test.cc
M src/kudu/master/auto_rebalancer.cc
M src/kudu/master/hms_notification_log_listener.cc
M src/kudu/master/location_cache-test.cc
M src/kudu/master/master-test.cc
M src/kudu/master/master.cc
M src/kudu/master/master_path_handlers.cc
M src/kudu/master/placement_policy-test.cc
M src/kudu/master/placement_policy.cc
M src/kudu/master/ranger_authz_provider.cc
M src/kudu/master/sentry_authz_provider-test.cc
M src/kudu/master/sentry_authz_provider.cc
M src/kudu/master/sentry_privileges_fetcher.cc
M src/kudu/master/sentry_privileges_fetcher.h
M src/kudu/master/ts_descriptor-test.cc
M src/kudu/master/ts_manager.cc
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.cc
M src/kudu/mini-cluster/webui_checker.cc
M src/kudu/rebalance/rebalance_algo-test.cc
M src/kudu/rebalance/rebalancer.h
M src/kudu/rpc/acceptor_pool.cc
M src/kudu/rpc/client_negotiation.cc
M src/kudu/rpc/exactly_once_rpc-test.cc
M src/kudu/rpc/messenger.h
M src/kudu/rpc/negotiation-test.cc
M src/kudu/rpc/periodic-test.cc
M src/kudu/rpc/proxy.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/reactor.h
M src/kudu/rpc/rpc-bench.cc
M src/kudu/rpc/rpc-test.cc
M src/kudu/rpc/rpc_stub-test.cc
M src/kudu/rpc/serialization.cc
M src/kudu/rpc/server_negotiation.cc
M src/kudu/rpc/transfer.cc
M src/kudu/security/ca/cert_management-test.cc
M src/kudu/security/ca/cert_management.cc
M src/kudu/security/ca/cert_management.h
M src/kudu/security/cert-test.cc
M src/kudu/security/cert.cc
M src/kudu/security/cert.h
M src/kudu/security/crypto.cc
M src/kudu/security/crypto.h
M src/kudu/security/init.cc
M src/kudu/security/openssl_util.cc
M src/kudu/security/openssl_util.h
M src/kudu/security/test/mini_kdc-test.cc
M src/kudu/security/tls_context.cc
M src/kudu/security/tls_context.h
M src/kudu/security/tls_handshake.cc
M src/kudu/security/tls_handshake.h
M src/kudu/security/tls_socket-test.cc
M src/kudu/security/tls_socket.cc
M src/kudu/security/tls_socket.h
M src/kudu/security/x509_check_host.cc
M src/kudu/sentry/sentry_action.h
M src/kudu/sentry/sentry_client-test.cc
M src/kudu/server/default_path_handlers.cc
M src/kudu/server/tcmalloc_metrics.cc
M src/kudu/server/webserver.cc
M src/kudu/subprocess/server.cc
M src/kudu/subprocess/subprocess_proxy-test.cc
M src/kudu/subprocess/subprocess_server-test.cc
M src/kudu/tablet/cfile_set-test.cc
M src/kudu/tablet/cfile_set.cc
M src/kudu/tablet/compaction-test.cc
M src/kudu/tablet/compaction_policy-test.cc
M src/kudu/tablet/compaction_policy.cc
M src/kudu/tablet/composite-pushdown-test.cc
M src/kudu/tablet/delta_compaction-test.cc
M src/kudu/tablet/delta_key.h
M src/kudu/tablet/delta_tracker.cc
M src/kudu/tablet/deltafile.cc
M src/kudu/tablet/diskrowset-test.cc
M src/kudu/tablet/memrowset-test.cc
M src/kudu/tablet/row_op.cc
M src/kudu/tablet/rowset_info.cc
M src/kudu/tablet/rowset_tree-test.cc
M src/kudu/tablet/tablet-pushdown-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet_history_gc-test.cc
M src/kudu/tablet/tablet_replica-test.cc
M src/kudu/tablet/transactions/transaction.h
M src/kudu/thrift/sasl_client_transport.cc
M src/kudu/thrift/sasl_client_transport.h
M src/kudu/tools/create-table-tool-test.cc
M src/kudu/tools/ksck.cc
M src/kudu/tools/ksck_checksum.cc
M src/kudu/tools/ksck_remote-test.cc
M src/kudu/tools/ksck_remote.cc
M src/kudu/tools/ksck_results.cc
M src/kudu/tools/kudu-admin-test.cc
M src/kudu/tools/kudu-tool-test.cc
M src/kudu/tools/kudu-ts-cli-test.cc
M src/kudu/tools/rebalancer_tool-test.cc
M src/kudu/tools/tool_action.h
M src/kudu/tools/tool_action_cluster.cc
M src/kudu/tools/tool_action_common.cc
M src/kudu/tools/tool_action_diagnose.cc
M src/kudu/tools/tool_action_fs.cc
M src/kudu/tools/tool_action_hms.cc
M src/kudu/tools/tool_action_local_replica.cc
M src/kudu/tools/tool_action_master.cc
M src/kudu/tools/tool_action_pbc.cc
M src/kudu/tools/tool_action_perf.cc
M src/kudu/tools/tool_action_remote_replica.cc
M src/kudu/tools/tool_action_table.cc
M src/kudu/tools/tool_action_tablet.cc
M src/kudu/tools/tool_action_test.cc
M src/kudu/tools/tool_action_tserver.cc
M src/kudu/tools/tool_action_wal.cc
M src/kudu/tools/tool_replica_util.cc
M src/kudu/tserver/heartbeater.cc
M src/kudu/tserver/scanners.cc
M src/kudu/tserver/tablet_copy_service.cc
M src/kudu/tserver/tablet_server-stress-test.cc
M src/kudu/tserver/tablet_server-test.cc
M src/kudu/tserver/tablet_server_authorization-test.cc
M src/kudu/tserver/tablet_server_options.cc
M src/kudu/tserver/tablet_service.cc
M src/kudu/tserver/ts_tablet_manager-test.cc
M src/kudu/tserver/tserver_path_handlers.cc
M src/kudu/util/bit-util-test.cc
M src/kudu/util/bitmap-test.cc
M src/kudu/util/bitmap.cc
M src/kudu/util/bitmap.h
M src/kudu/util/bitset-test.cc
M src/kudu/util/block_bloom_filter-test.cc
M src/kudu/util/cache-test.cc
M src/kudu/util/cloud/instance_detector.cc
M src/kudu/util/compression/compression_codec.cc
M src/kudu/util/countdown_latch-test.cc
M src/kudu/util/curl_util-test.cc
M src/kudu/util/debug-util-test.cc
M src/kudu/util/env-test.cc
M src/kudu/util/env_posix.cc
M src/kudu/util/env_util-test.cc
M src/kudu/util/faststring.h
M src/kudu/util/fault_injection.cc
M src/kudu/util/file_cache-stress-test.cc
M src/kudu/util/file_cache.cc
M src/kudu/util/group_varint-test.cc
M src/kudu/util/group_varint.cc
M src/kudu/util/hdr_histogram.cc
M src/kudu/util/kernel_stack_watchdog.cc
M src/kudu/util/knapsack_solver-test.cc
M src/kudu/util/logging-test.cc
M src/kudu/util/maintenance_manager-test.cc
M src/kudu/util/maintenance_manager.cc
M src/kudu/util/mem_tracker-test.cc
M src/kudu/util/metrics-test.cc
M src/kudu/util/metrics.h
M src/kudu/util/minidump-test.cc
M src/kudu/util/minidump.cc
M src/kudu/util/monotime-test.cc
M src/kudu/util/mt-metrics-test.cc
M src/kudu/util/net/dns_resolver.h
M src/kudu/util/net/sockaddr.h
M src/kudu/util/pb_util-internal.cc
M src/kudu/util/pb_util-test.cc
M src/kudu/util/process_memory.cc
M src/kudu/util/pstack_watcher.cc
M src/kudu/util/random_util.h
M src/kudu/util/rle-test.cc
M src/kudu/util/rolling_log-test.cc
M src/kudu/util/slice.h
M src/kudu/util/spinlock_profiling.cc
M src/kudu/util/status.h
M src/kudu/util/subprocess-test.cc
M src/kudu/util/test_util.cc
M src/kudu/util/thread-test.cc
M src/kudu/util/thread.cc
M src/kudu/util/thread_restrictions.cc
M src/kudu/util/threadlocal.cc
M src/kudu/util/threadpool-test.cc
M src/kudu/util/trace-test.cc
M src/kudu/util/ttl_cache-test.cc
M src/kudu/util/version_util.cc
M src/kudu/util/yamlreader-test.cc
M src/kudu/util/zlib.cc
324 files changed, 623 insertions(+), 329 deletions(-)

Approvals:
  Alexey Serbin: Looks good to me, approved
  Kudu Jenkins: Verified

--
To view, visit http://gerrit.cloudera.org:8080/15543
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic248ba1511347d79cc6ea38140de888e5ac13354
Gerrit-Change-Number: 15543
Gerrit-PatchSet: 6
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

Reply via email to