Weekly overview of the bug-hunting category- week 47, 2018

in utopian-io •  9 months ago 

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'.

utopian (1).jpg

Previous Reports

Bug hunting contributions summary

  • Week 47: November 15th - 22nd
  • 3 contributions, 3 scored
  • Average score of 65.17
  • 2 bugs fixed

The contributions

ContributorURLProjectScore
@mightypandasteemplus-busyorg-clicking-on-pending-tab-under-steemplus---rewards---curation-throws-errorbusy.org80
@punditodesktop-client-esteem-surfer-version-2-problem-with-low-resolution-screenseSteem Surfer35.5
@stmdevbeem-0-20-12-unable-to-use-blockchain-stream-blocks-with-only-ops-true-and-threadsbeem80

@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:

  1. 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.
  1. 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 the get_block API call. The get_block() answer contains the block_id field, which is correctly parsed by Block.block_num here.

When only_ops=True, beem uses the get_ops_in_block API call, which also includes virtual operations (e.g. author/curation rewards etc.) The get_ops_in_block() answer, however, does not contain a block_id field. Calling Block.block_num on this data returns None, causing the threads bookkeeping logic to fail to register the received block data. The Blockchain.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 the Block.block_num method, both cases can be treated correctly and Blockchain.blocks() doesn't run into int(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

bar-graph (12).png

@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

bar-graph (13).png

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

bar-graph (14).png

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

@fego

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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) :

You received more than 3000 upvotes. Your next target is to reach 4000 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Support SteemitBoard's project! Vote for its witness and get one more award!

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!