Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
admin_node.erl:42: Call to missing or unexported function admin_routes:node_route/1
admin_node.erl:75: The call riak_control_formatting:action_result({'error', 'unknown_action'},Req::any(),C::any()) breaks the contract ({'badrpc',any()},wrq:reqdata(),context()) -> {boolean(),wrq:reqdata(),context()}
admin_node.erl:89: The call riak_control_formatting:node_ring_details(P::any(),Node::atom()) will never return since the success typing is (#partition_info{index::'undefined' | integer(),partition::'undefined' | integer(),owner::atom(),vnodes::'undefined' | [{_,_}],handoffs::'undefined' | [{_,_,_}]},maybe_improper_list()) -> [{'i' | 'index' | 'node' | 'reachable' | 'status' | [any(),...],atom() | binary() | integer()}] and the contract is (partition(),maybe_improper_list()) -> [{'i' | 'index' | 'node' | 'reachable' | 'status' | [any(),...],atom() | binary() | integer()}]
admin_node_leave.erl:40: Call to missing or unexported function admin_routes:node_route/1
admin_node_stop.erl:40: Call to missing or unexported function admin_routes:node_route/1
admin_routes.erl:45: The specification for admin_routes:vnode_route/1 states that the function might also return [string()] but the inferred return is none()
admin_routes.erl:48: The specification for admin_routes:vnode_route/0 states that the function might also return [string()] but the inferred return is none()
admin_routes.erl:52: Type specification admin_routes:nodes_route() -> [string()] is a supertype of the success typing: admin_routes:nodes_route() -> [string(),...]
admin_routes.erl:54: Type specification admin_routes:partitions_route() -> [string()] is a supertype of the success typing: admin_routes:partitions_route() -> [string(),...]
admin_routes.erl:56: Type specification admin_routes:cluster_route() -> [string()] is a supertype of the success typing: admin_routes:cluster_route() -> [string(),...]
riak_control_app.erl:31: The specification for riak_control_app:start/2 states that the function might also return {'ok',pid(),_} but the inferred return is 'ignore' | {'error',_} | {'ok',pid()}
riak_control_security.erl:146: The specification for riak_control_security:csrf_token/2 states that the function might also return 'undefined' but the inferred return is [any()]
riak_control_session.erl:144: Type specification riak_control_session:init([any()]) -> {'ok',state()} is a supertype of the success typing: riak_control_session:init([]) -> {'ok',#state{vsn::'undefined' | integer(),services::'undefined' | [{atom(),'fallback' | 'primary' | 'undefined'}],partitions::'undefined' | [#partition_info{index::'undefined' | integer(),partition::'undefined' | integer(),owner::atom(),vnodes::'undefined' | [{atom(),'fallback' | 'primary' | 'undefined'}],handoffs::'undefined' | [{atom(),integer(),atom()}]}],nodes::'undefined' | [#member_info{node::atom(),status::'down' | 'incompatible' | 'invalid' | 'leaving' | 'undefined' | 'valid',reachable::'false' | 'true' | 'undefined',vnodes::'undefined' | [{{atom(),atom()},atom()}],handoffs::'undefined' | [{atom(),integer(),atom()}],ring_pct::'undefined' | float(),pending_pct::'undefined' | float(),mem_total::'undefined' | integer(),mem_used::'undefined' | integer(),mem_erlang::'undefined' | integer(),action::'leave' | 'remove' | 'undefined' | {'force_replace',atom()} | {'replace',atom()},replacement::atom()}],update_tick::'false' | 'true' | 'undefined'}}
riak_control_session.erl:378: Type specification riak_control_session:get_partition_details(#state{},{integer(),term()},handoffs()) -> #partition_info{} is a supertype of the success typing: riak_control_session:get_partition_details(#state{vsn::'undefined' | integer(),services::'undefined' | [{atom(),'fallback' | 'primary' | 'undefined'}],partitions::'undefined' | [#partition_info{index::'undefined' | integer(),partition::'undefined' | integer(),owner::atom(),vnodes::'undefined' | [{atom(),'fallback' | 'primary' | 'undefined'}],handoffs::'undefined' | [{atom(),integer(),atom()}]}],nodes::'undefined' | [#member_info{node::atom(),status::'down' | 'incompatible' | 'invalid' | 'leaving' | 'undefined' | 'valid',reachable::'false' | 'true' | 'undefined',vnodes::'undefined' | [{{atom(),atom()},atom()}],handoffs::'undefined' | [{atom(),integer(),atom()}],ring_pct::'undefined' | float(),pending_pct::'undefined' | float(),mem_total::'undefined' | integer(),mem_used::'undefined' | integer(),mem_erlang::'undefined' | integer(),action::'leave' | 'remove' | 'undefined' | {'force_replace',atom()} | {'replace',atom()},replacement::atom()}],update_tick::'false' | 'true' | 'undefined'},{integer(),atom()},[{atom(),integer(),atom()}]) -> #partition_info{index::'undefined' | integer(),partition::'undefined' | integer(),owner::atom(),vnodes::'undefined' | [{atom(),'fallback' | 'primary' | 'undefined'}],handoffs::'undefined' | [{atom(),integer(),atom()}]}
riak_control_session.erl:418: Type specification riak_control_session:nodes_and_claim_percentages(ring()) -> [any()] is a supertype of the success typing: riak_control_session:nodes_and_claim_percentages(_) -> [{_,_}]
@tmcgilchrist

I think a bunch of these are because of the extra flag to dialyzer (-Wunderspecs) which reports specs that are too liberal / permissive.

I'm starting to think it'd be better to have that off by default cause it raises a number of false positives.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.