[pLog-svn] r6088 - plog/branches/lifetype-1.2/class/security
Mark Wu
markplace at gmail.com
Thu Nov 29 09:36:48 EST 2007
HI Jon & Oscar:
Just try to revert to 6087, and give it a test!
When bayesian filter marked one comment as spam, it will add two comment
records into db.
That's why I say the pipeline always run twice.
Take the defualt filters as example , there are 3 filters
1. NullFilter
2. CommentFilter
3. BayesianFilter
The $pipeline->process() will run these 3 filter one by one...
in 1st run:
NullFilter->CommentFilter->BayesianFilter(Failed), then it break.
in 2nd run:
NullFilter->CommentFilter->BayesianFilter(Failed), won't break .....
For the time being, we don't think this is a problem, becasue we just "HIDE"
it ...
Take the authimage "deleteFile" for example, I put @ in front of unlink and
ignore the error message, becasue we have no idea why filters run twice.
So, I just combine these two runs into one, and make sure each "filter" run
once. Why I can make sure ... Becasue I did not use "break" to break the
for-loop, I just let it go through all filters.
* If some filters fails, I just keep the first failed result into
$this->_result
* If no filters fails, I just keep the last filter result into
$this->_result
It is exactly the old way does.
Mark
> -----Original Message-----
> From: plog-svn-bounces at devel.lifetype.net
> [mailto:plog-svn-bounces at devel.lifetype.net] On Behalf Of Jon Daley
> Sent: Thursday, November 29, 2007 10:18 PM
> To: LifeType Developer List
> Subject: Re: [pLog-svn] r6088 -
> plog/branches/lifetype-1.2/class/security
>
> On Thu, 29 Nov 2007, Mark Wu wrote:
> >> Well, hopefully Paul will chime in here. I am pretty sure I
> >> understand what you did. Did you read Paul's (I assume it
> was Paul)
> >> comment about why he added the second loop? I think we
> need to run
> >> the entire pipeline twice, particularly those filters that ran the
> >> first time.
> >
> > Yep, I read his comments about add second run , that why I
> think the
> > change is okay for us. Becasue I can make sure all pipeline filters
> > run once. No more no less :D
>
> I don't understand, if plugin A runs and trains the
> comment as non-spam, and then plugin B runs and trains as
> spam, in the two-run method, plugin A would get run again and
> be able to clean up his bad train of the comment.
> Your method doesn't allow for that, correct?
>
> >> The thing that we need to have is the "executed" flag
> passed into
> >> each filter, and then each filter can decide whether it
> wants to run
> >> twice or not.
> >
> > Yes, this is what I did in rev. 6088.
> Hrm, I'll guess I'll have to look more into the code.
> Plugins never run twice in your new method, so what you just
> said is incorrect?
>
> > BTW, did you test it yet? Does it work for you?
> I don't use any plugins that would require the
> functionality that Paul added. I don't expect it broke
> anything that I do, since I only use hidden input. Only
> running once restricts what plugins can do, and depending on
> what letter they start with, depends on if they run in the
> correct order or not.
>
>
> --
> Jon Daley
> http://jon.limedaley.com/
>
> As computer scientists, we don't like to think that we're fools.
> We like to think we are better than that.
> -- Professor Tygar
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://limedaley.com/mailman/listinfo/plog-svn
More information about the pLog-svn
mailing list