InvalidParameterException All files must have an owner!

InvalidParameterException All files must have an owner!

Please helppppppppppppp  Im running nuts.

I deleted a user in the databse and i started getting this problem..this happened yesterday and since then, when i go to members or user administration, it gives me this error "InvalidParameterException All files must have an owner!...ive done everything in the blog about the solution ie starting the crontrigger and enabling the garbage collector for 1 week...its still not working.

is there any way i can manually turn on the garbage collector...cos 1 week is too long!

I need some help plssssssssssss

  • By "patch" I am assuming you mean putting in a value for the field just to make the display code happy, as opposed to correcting the object by updating the database.

    If I am not mistaken,  we're seeing a fatal exception trying to construct the html that shows the list of groups.  It seems like there ought to be a way to have the display continue without throwing a fatal exception.  Some sort of damage indicator (image, warning text) could be shown for the groups / files that need to be repaired.

  • Look at the code again:

    return $this->dir_root . $this->make_file_matrix($owner->username) . $file->getFilename();

    It looks like the filename is not a full path but the path needs to be built using the owner's name. Thus, no owner, no image.

  • hmm....
    make file matrix will take UserName eg ABCDEXYZ
    and create directory structure for elgg  e.g.  /data/A/B/C/D/E/ABCDEXYZ for storing user's files
    If this is causing problems I wonder if bad characters in UserName might be trigerring this situation ?

    A user's profile and owned groups files both go into this directory.

  • Could this then be started during the registration process

    Does elgg not check for bad characters that the database or server cannot handle before it starts the registration save process I would of thought that this would be the first thing it did. if not this may explain a lot

  • What I just said is really an ** assumption.

    But if this is what's causing the problem -- we will need to know at time of error - UserID, etc to determiine if this is the case. You remember ? with your UserNames migrate we had quite a few probems with fuhnny UsetrNames, Emails  ? Funny chars in UserNames, etc  that forced me to delete those entries...

    I have not yet read thu Elgg's code for UserName character filtering for "clean" UserNames.... ;-(

  • Hmmmmmmmmmm interesting i hope this is the rout of the problem, then we will know where to concentrate our efforts to fix it.

    Just to let you know we had 171 sign-ups today so this has pushed the non displaying  members page to offset 16+ I can live with that so we have turned the plugin back on

    The problem for other sites is that they display latest member data on their front page which will prevent the login page from displaying. hence breaking their site.

  • Hmm...

    I am reading up on this assumption

    Elgg @ register does

    • sanitise_string($username)

    which seems to end up invoking buitin funcn

    • mysql_real_escape_string ()

    I will have to study this in more detail to figure out if the MySql func might actually allow chars to pass thru which will not be OK for the Elgg file name matrix, i.e. the user's directory name... on the op system...

    Hope I'm not on a wild goose chase here...

  • I have the same problem:

    InvalidParameterException

    All files must have an owner!

     

  • Just i commented the if line on filestore.php a just works perfectly!.....what's your opinion?

    public function getFilenameOnFilestore(ElggFile $file)
            {
                $owner = $file->getOwnerEntity();
                if (!$owner)
                    $owner = get_loggedin_user();
                       
               // if ((!$owner) || (!$owner->username)) throw new InvalidParameterException(elgg_echo('InvalidParameterException:MissingOwner'));
               
                return $this->dir_root . $this->make_file_matrix($owner->username) . $file->getFilename();
            }