Skip to content

Change ETS queue table permissions to protected#781

Closed
binarytemple wants to merge 4 commits into
basho:develop-2.2from
binarytemple:patch-1
Closed

Change ETS queue table permissions to protected#781
binarytemple wants to merge 4 commits into
basho:develop-2.2from
binarytemple:patch-1

Conversation

@binarytemple

Copy link
Copy Markdown

Sometimes realtime replication stops working, the reason why it has stopped is unclear, diagnosis is further complicated by the fact that the ETS queue table (buffer of objects due to be replicated to the sink) is private (can only be seen by the riak_repl2_rtq gen_server instance).

If it were possible to examine the contents of that table the support engineer could examine the queued objects and perhaps identify a large object causing head of line blocking. At the moment the only option is to kill the process and let the supervisor restart it, destroying all useful information in the process. The diagnostic information is opaque and needlessly so.

The table doesn't need to be changed to public as it's probably undesirable to modify state outside the public API for this gen_server.

I propose that the permissions be changed to 'protected' in order to improve visibility.

russelldb and others added 4 commits November 30, 2017 11:27
Sometimes realtime replication stops working, the reason why it has stopped is unclear, diagnosis is further complicated by the fact that the ETS queue table (buffer of objects due to be replicated to the sink) is private (can only be seen by the `riak_repl2_rtq` `gen_server` instance).

If it were possible to examine the contents of that table the support engineer could examine the queued objects and perhaps discover that there is a large object causing head of line blocking. At the moment the only option is to kill the process and let the supervisor restart it, destroying all useful information in the process. The diagnostic information is opaque and needlessly so. 

The table doesn't need to be changed to public as it's probably undesirable to modify state outside the public API for this gen_server. 

I propose that the permissions be changed to 'protected' in order to improve visibility.
@russelldb

Copy link
Copy Markdown
Contributor

Not too late, was gonna yell "FREEZE!" on Monday. I'll double check it this afternoon, but it looks good to me, and makes good sense.

@russelldb russelldb self-assigned this Apr 8, 2018
@nickkeers

Copy link
Copy Markdown

This would be good, I think we've had the same frustration when trying to diagnose why the queue is blocking but haven't been able to do anything because the table is private

@russelldb

Copy link
Copy Markdown
Contributor

Just realised, this should be against 2.2, and 2.2.5 should have been deleted. It was just a temporary branch while I got the build working. Sorry @binarytemple, can you re-open against develop-2.2?

@russelldb
russelldb changed the base branch from develop-2.2.5 to develop-2.2 April 10, 2018 07:22
@russelldb

Copy link
Copy Markdown
Contributor

Closing in favour of #782 (branch target mess up, and @binarytemple is AFK for a few days so this is quicker)

@russelldb russelldb closed this Apr 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants