Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Utility/structure needed? once upgrade to 2.2.1 done

2»

Answers

  • R_JR_J Ex-Fanboy Munich Admin

    Since Möhrenstein has the same message, I guess you both use a plugin/addon that causes this message to always reappear. I'd be interested in a list of your activated plugins & addons.

  • my text was too long and it seems that no mod who want to accept it, so i made two screenshots:

  • PamelaPamela ✭✭

    Mine

    // EnabledApplications
    $Configuration['EnabledApplications']['Conversations'] = 'conversations';
    $Configuration['EnabledApplications']['Vanilla'] = 'vanilla';
    
    // EnabledPlugins
    $Configuration['EnabledPlugins']['HtmLawed'] = 'HtmLawed';
    $Configuration['EnabledPlugins']['PrivateCommunity'] = false;
    $Configuration['EnabledPlugins']['AllViewed'] = false;
    $Configuration['EnabledPlugins']['Quotes'] = false;
    $Configuration['EnabledPlugins']['Tagging'] = false;
    $Configuration['EnabledPlugins']['FileUpload'] = false;
    $Configuration['EnabledPlugins']['InvisibilityCloak'] = false;
    $Configuration['EnabledPlugins']['SplitMerge'] = false;
    

    Previously Q&A has been used but not re-enabled

  • R_JR_J Ex-Fanboy Munich Admin
    edited May 2016 Answer ✓

    Thanks for posting that short list! I had no luck to reproduce that message and so I've reinstalled a test version, now being able to see this message! Here's the explanation...

    Users permissions are cached so that they do not have to be calculated again and again. If you do not use a cache like memcached, the permissions are cached in the User table, column Permissions.
    In order to run utility/structure, the permissions of the current user are checked. If they are not calculated yet, they will be calculated and cached in User.Permissions.
    This means that in order to clean that column, it couldn't be empty. See where this will end? Infinity!

    Since my normal test installation uses memcached, I couldn't reproduce this at first.

    Well, the conclusion of all this is that you can safely ignore this remaining result of /utility/structure. It will never disappear. I'll file this as an issue on GitHub, but I'm not 100% sure that there will be a solution for this.

  • Thank you very much for your research:D

  • PamelaPamela ✭✭

    Many thanks @R_J for your replies, test and help to fix it

  • '// EnabledApplications
    $Configuration['EnabledApplications']['Conversations'] = 'conversations';
    $Configuration['EnabledApplications']['Vanilla'] = 'vanilla';
    $Configuration['EnabledApplications']['Yaga'] = 'yaga';'

    '// EnabledPlugins
    $Configuration['EnabledPlugins']['GettingStarted'] = false;
    $Configuration['EnabledPlugins']['HtmLawed'] = 'HtmLawed';
    $Configuration['EnabledPlugins']['jsconnect'] = true;
    $Configuration['EnabledPlugins']['cleditor'] = false;
    $Configuration['EnabledPlugins']['ButtonBar'] = false;
    $Configuration['EnabledPlugins']['Emotify'] = false;
    $Configuration['EnabledPlugins']['FileUpload'] = false;
    $Configuration['EnabledPlugins']['editor'] = true;
    $Configuration['EnabledPlugins']['embedvanilla'] = false;
    $Configuration['EnabledPlugins']['Flagging'] = false;
    $Configuration['EnabledPlugins']['Gravatar'] = true;
    $Configuration['EnabledPlugins']['Liked'] = false;
    $Configuration['EnabledPlugins']['Like'] = false;
    $Configuration['EnabledPlugins']['CategoriesDropdown'] = false;
    $Configuration['EnabledPlugins']['Galleries'] = false;
    $Configuration['EnabledPlugins']['Signatures'] = true;
    $Configuration['EnabledPlugins']['ShareThis'] = false;
    $Configuration['EnabledPlugins']['OnlineNow'] = true;
    $Configuration['EnabledPlugins']['Spoilers'] = false;
    $Configuration['EnabledPlugins']['LastEdited'] = false;
    $Configuration['EnabledPlugins']['ThankfulPeople2'] = false;
    $Configuration['EnabledPlugins']['DiscussionReaders'] = false;
    $Configuration['EnabledPlugins']['HoverZoom'] = false;
    $Configuration['EnabledPlugins']['ProfileExtender'] = true;
    $Configuration['EnabledPlugins']['VanillaSEO'] = true;
    $Configuration['EnabledPlugins']['Voting'] = false;
    $Configuration['EnabledPlugins']['SplitMerge'] = true;
    $Configuration['EnabledPlugins']['Tagging'] = true;
    $Configuration['EnabledPlugins']['Quotes'] = true;
    $Configuration['EnabledPlugins']['EmojiExtender'] = false;
    $Configuration['EnabledPlugins']['Mediator'] = true;
    $Configuration['EnabledPlugins']['RoleTitle'] = false;
    $Configuration['EnabledPlugins']['ImgurUpload'] = true;
    $Configuration['EnabledPlugins']['CustomToolTip'] = true;
    $Configuration['EnabledPlugins']['YagaRankInMeta'] = true;
    $Configuration['EnabledPlugins']['Minify'] = false;
    $Configuration['EnabledPlugins']['VanillaStats'] = true;
    $Configuration['EnabledPlugins']['VanillaFancybox'] = false;
    $Configuration['EnabledPlugins']['ResizedImageLightbox'] = true;
    $Configuration['EnabledPlugins']['Facebook'] = false;
    $Configuration['EnabledPlugins']['CSSedit'] = true;
    $Configuration['EnabledPlugins']['SphinxSearchSyntaxDropdown'] = false;
    $Configuration['EnabledPlugins']['Debugger'] = false;
    $Configuration['EnabledPlugins']['YagaDiscussionHeaderBadges'] = true;
    $Configuration['EnabledPlugins']['BootstrapThemeSwitchLayout'] = false;
    $Configuration['EnabledPlugins']['YagaUnawardBadge'] = true;
    $Configuration['EnabledPlugins']['PostCount'] = false;
    $Configuration['EnabledPlugins']['QnA'] = true;
    $Configuration['EnabledPlugins']['DiscussionPolls'] = true;
    $Configuration['EnabledPlugins']['PM'] = true;
    $Configuration['EnabledPlugins']['MentionsLookup'] = false;
    $Configuration['EnabledPlugins']['AdsenseBetweenThreads'] = false;
    $Configuration['EnabledPlugins']['AptAds'] = false;
    $Configuration['EnabledPlugins']['IndexDiscussionImage'] = true;
    $Configuration['EnabledPlugins']['UserBanner'] = true;
    $Configuration['EnabledPlugins']['Sketchfab'] = false;
    $Configuration['EnabledPlugins']['jsconnectAutoSignIn'] = true;
    $Configuration['EnabledPlugins']['NoCaptchaReCaptcha'] = true;
    $Configuration['EnabledPlugins']['sfm'] = false;
    $Configuration['EnabledPlugins']['linestickers'] = false;
    $Configuration['EnabledPlugins']['aeConfig'] = true;
    $Configuration['EnabledPlugins']['SearchCategory'] = true;'

  • R_JR_J Ex-Fanboy Munich Admin

    This list would be easier to work with, but must I? I mean: do you still face problems when doing utility/structure other than what you've posted here: https://vanillaforums.org/discussion/comment/240654/#Comment_240654
    These messages can safely be ignored.

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    @R_J said:
    Well, the conclusion of all this is that you can safely ignore this remaining result of /utility/structure. It will never disappear. I'll file this as an issue on GitHub, but I'm not 100% sure that there will be a solution for this.

    Have you tested using different registration methods ? Because depending on that certain roles appear. Like if you choose Basic with captcha, you do not have the applicant role you have guest member mod admin .

    Then there is the unconfirmed role which does not appear with invitation based registration as far as I know… I think this issue is related to the registration options and the resulted roles created and when the registration type is changed , these roles become orphaned ?

    Just a wandering thought ….

  • R_JR_J Ex-Fanboy Munich Admin

    @vrijvlinder utility/structure calls every available structure file and method. In the dashboard/settings/structure.php file, there is an unconditional update of the role table. Normally records are only updated if they are not correct. Since this check is missing at this point, the update sql is always generated.

    In a forum that doesn't use cache, permissions are stored in the user table and can never be empty when utility/structure is called. Therefore the sql for the permission table is always generated.

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    Ok, and would you say this is normal behavior or something that could use a plugin like RoleRefresh …. ? It would check if there was a change and update the role table …

    At the very least it would nice if there was a message to ignore or something if indeed it is just an informational message…

  • R_JR_J Ex-Fanboy Munich Admin

    For the role table update, I've made a pull request on github which I think it's already merged to master.

    And I've filed an issue for the permission table update. I don't know what the best way to handle that problem is. Otherwise I would have made a PR for this, too.

  • PamelaPamela ✭✭

    @vrijvlinder said:
    Have you tested using different registration methods ? Because depending on that certain roles appear. Like if you choose Basic with captcha, you do not have the applicant role you have guest member mod admin .

    Then there is the unconfirmed role which does not appear with invitation based registration as far as I know… I think this issue is related to the registration options and the resulted roles created and when the registration type is changed , these roles become orphaned ?

    If it could help ;-) we 're using Invitation method, not tried these basic / approval methods at this point

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    Seems others are having similar issues. I just don't know , it was only a suspicion .

  • R_JR_J Ex-Fanboy Munich Admin

    I don't know how to make myself any clearer, but I'll give it a last try.
    This is no issue, bug or anything like that, just an unexpected behaviour.

    When you open /utility/structure something like this happens:

    Admin: Hello Vanilla, please do some magic for me.
    Vanilla: Please be patient, I'll take a look at all the commands I find in any structure related files and methods, gather what is left to do and ask you what to do about it.
    Admin: Great, thanks!
    Vanilla: Okay, I found several "if this value is wrong, set correct value", but the value has always been set correct so there is nothing to do, but...
    Admin: Yes?
    Vanilla: Well, there are 3 "UPDATE A VALUE AND I DON'T CARE IF IT IS NECESSARY OR NOT!!!" shout outs. So please don't be angry I just present you what I am ask to do.
    Admin: Do I have to update those table?
    Vanilla: Frankly spoken? I don't know. I did not check it, I just found the instruction to do so anytime you ask me to do /utility/structure.
    Admin: Well then would it hurt?
    Vanilla: Nope, I promise!
    Admin: Lets do it!
    Vanilla: Okay, but please only ask me one time, because it really doesn't make sense to set this fields again and again and again to the same value!
    Admin: But am I not forced to run /utility/structure until there is no to do left?
    Vanilla: In theory, yes. But haven't you listen to what I've told you?

    That's what's going on for the role table. For the permissions it is something like that:

    Admin: Vanilla, run /utility/structure!
    Vanilla: What?! Who are you to demand that?
    Admin: I'm your admin, check my permissions if you don't believe me.
    Vanilla: Okay, I've checked your permissions and you really are admin. Let me store that information anywhere so that I can recognize you the next time we see, alright?
    Admin: Good idea.
    Vanilla: I would like to store this information in the cache, but you have none installed. So I write it in the User table in the column Permissions. How about that?
    Admin: I don't want to know about that. Just proceed.
    Very talkative Vanilla: Everything's fine. You've asked me to run /utility/structure, I've checked that you are allowed to and saved that information in the user table. Now let me look what changes must be done.
    Admin: Yes, that would be very kind...
    Vanilla: Hey, Admin, there is an entry in the User table in the column Permissions. That should be cleared.
    Admin: Really? Well, if you think so, do it.
    Vanilla: Okay, permissions are cleared! Wait: who the hell are you? Are you allowed to be here?
    Admin: Oh, I'm the Admin. We've talked before...
    Vanilla: I tell you what: I'll check your access rights and write that information into the User table, column Permission. That way, I can recognize you the next time we see, how about that?
    Admin: Do what ever you want to, but please don't ask me to run /utility/structure until we loop into infinity.

    Well, you might see that in both cases the sql commands are correct and don't harm database integrity or anything bad. Run them once to be sure that everything is fine. Ignore them afterwards. Please.

  • whu606whu606 I'm not a SuperHero; I just like wearing tights... MVP

    That's actually a really user-friendly way to explain the sql logic.

    Thanks.

Sign In or Register to comment.