Weekly overview of the bug-hunting category- week 47, 2018
This is a report on the weekly contributions to the bug hunting category. The post contains basic stats like the number of contributions received by the category, an excerpt on new contributors if there are any and a detailed comparison of the weeks output with previous weeks'.
Previous Reports
- Weekly overview of the bug-hunting category- week 44, 2018
- Weekly overview of the bug-hunting category- week 45, 2018
- Weekly overview of the bug-hunting category- week 46, 2018
Bug hunting contributions summary
- Week 47: November 15th - 22nd
- 3 contributions, 3 scored
- Average score of 65.17
- 2 bugs fixed
The contributions
@mightypanda in his hunt discovered that clicking on Pending under SteemPlus -> Rewards -> Curation throws undefined error in console and both Pending and Paid links are displayed with none selected.
Technical Analysis
When Curation Rewards tab is clicked, following code executes:
$('.subtypeItem').eq(0).parent().hide();
if (isSteemit) {
$('.subtypeItem').removeClass('active');
$('.subtypeItem').eq(1).addClass('active');
} else if (isBusy) {
$('.subtypeItem').removeClass('UserMenu__item--active');
$('.subtypeItem').eq(1).addClass('UserMenu__item--active');
}
This code is supposed to get 2 items (Pending and Paid) and then remove Pending and select Paid. But following the steps above, $('.subtypeItem') gets 4 items. There is another set of Pending and Paid tabs in code somewhere. To solve this issue, you can remove all DOM elements except last 2.
To remove elements:
if ($('.subtypeItem').length > 2) {
_.forEach($('.subtypeItem'), (elem, idx) => {
if (idx <= $('.subtypeItem').length-2)
$(elem).parent().remove();
})
}
A GitHub issue and a PR to fix the problem were provided by mightypanda and merged to master.
@pundito in his use of the eSteem Surfer desktop app noticed an unusual behavior, the scroll bar becomes unresponsive when the editor is filled with much text content thereby making it impossible to scroll back to the top for editing purpose. He would also notice the non-functioning 'clear all' button. In his words:
- With the resolution of my old HP ProBook (1366x768) we will now reach the point where I can't see anymore what I am typing.
You see in the video that the screen does not scroll. Even if I use the scroll bar the screen will jump back to a point where I can't read anything.
We reached the point where I need to use another editor. Also clicking with the mouse does not help. The text jumps around.
- As demonstrated in the video the clear all button clears nothing.
However, the moderator at the time of review could not replicate the scroll bar behavior, the 'clear all' button on the other hand was confirmed to be non functional.
@stmdev while using beem, a python library for steem, would notice this discrepancy -
The code below should return all ops in the given block range. Additionally using threading=True
should eventually speed things up.
from beem.blockchain import Blockchain
b = Blockchain()
for op in b.blocks(start=25000000, stop=25000010, only_ops=True,
threading=True):
continue
Error Output:
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
...
Cause/Fix
When
only_ops=False
(default), beem uses theget_block API call
. The get_block()
answer contains theblock_id field
, which is correctly parsed byBlock.block_num
here.
When
only_ops=True
, beem uses theget_ops_in_block
API call, which also includes virtual operations (e.g. author/curation rewards etc.) Theget_ops_in_block()
answer, however, does not contain ablock_id field
. CallingBlock.block_num
on this data returnsNone
, causing the threads bookkeeping logic to fail to register the received block data. TheBlockchain.blocks()
logic then endlessly retries to fetch the corresponding block data.
The
get_ops_in_block()
answer contains the corresponding block number in a block field. By adding a check for the block field into theBlock.block_num
method, both cases can be treated correctly andBlockchain.blocks()
doesn't run intoint(None)
errors anymore here.
A GitHub issue and a PR to fix the problem were provided by stmdev and merged to master.
In summary, there were 3 contributions to the category this week and all were rewarded and in accordance to the Utopian review guidelines governing the category. There were no staff picks. There was no new contributor to the category this week.
Hunter Totals and Average
@mightypanda after four weeks is the most consistent of the hunters and still tops the bug-hunters table with 3 finds, @stmdev now sits pretty with the highest average reward score of 80 previously occupied by @mattockfs at 72.5.
Weekly Average Score and number of Contributions
The average score of 65.17 is lower than the previous week of 70 but higher than 44 and 45's average of 45.5 and 51.9 respectively, lower than last week's by 4.83. Compared to last week, this week the category two contributions more. Note that in the calculation of the average, the zero scored contributions are not included.
Reports Reviewed By Reviewer
The 13 contributions received by the category in the past five weeks were assessed by three reviewers. Of the 13 contributions, 11 were rewarded.
- @sachincool have now reviewed 2 contributions (40, 40) with an average score of 40.
- @fego have reviewed 8 contributions (45.5, 72.5, 44.5, 80, 35.5, 80) with an average score of 59.7.
- @tobias-g have reviewed 3 contributions (37.5, 65, 70) with an average score of 57.5.
If you wish to have your open source projects added to our whitelist you can contact us on our help channel at our discord server. You can also leave your questions and comments below :)
Thanks
Thank you for the report @fego. This report is precise and comprehensive. Well done!
This week seems to be a better week compare to last week report. I hope to see the continuation in growth and more quality contributions to the Bug-hunting category.
Please note that while the CM hasn't changed the footer, I am not scoring #iamutopian posts based on the questionnaire. They have their own metric, and that will be the case until we go live with the new guidelines and new questionnaire, which will be comprehensive enough to reflect these types of posts.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]
Thank you for your review, @tykee! Keep up the good work!
Congratulations @fego! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Hi @fego!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Hey, @fego!
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!