Plone在新内容保存上产生404

时间:2011-05-26 01:06:26

标签: plone

问题:内容编辑器保存新的内容项,并在新对象的正确URL上获取404。如果他们然后刷新,那么项目就在那里,完全正常。

对于多种基于Archetypes的内容类型,我们已经在至少两个不同的网站上看到过这种情况。我们在Plone 3.x和4.0.3上看过它。以下是这些网站的共同点:

  • HAProxy负载平衡(有和没有会话亲和性)
  • 多个ZEO客户
  • 使用ZODB 3.9.7或3.8.4
  • 问题仅在某些时候发生,可能是4个内容项中的1个

有没有人见过这样的东西?

3 个答案:

答案 0 :(得分:1)

我没有给你答案;这不应该真的发生。我当然没有看到这个。

您需要收集更多信息以对此进行问题排查,这可能需要对专家进行交互式访问,因此不需要进行此类故障排除。

我所能做的就是建议您收集尽可能多的信息,包括来自各种日志的用户交互的完整记录,包括HAProxy和ZEO服务器。

在服务器级别可能需要额外的检测(当发生NotFound错误时,转储有关 存在的内容的其他信息等)。

答案 1 :(得分:0)

一些推荐/问题:

  1. 确实已经创建了内容对象。
  2. 检查内容视图是否正确(在profiles / default / types / yourtype.xml中声明的视图)。
  3. 直接向plone实例添加内容时是否会发生这种情况(没有缓存和负载平衡?
  4. 使用负载平衡向直接plone实例添加内容但没有缓存时是否会发生这种情况? --->等等......?
  5. 也许不是一个优雅的,但您可以尝试在代码中插入print语句或pdb断点,这样您就可以在创建内容对象时进行跟踪。这只是作为一种绝望的“仪器”方法。

答案 2 :(得分:0)

是。我们最近开始看到同样的问题。我们有几乎相同的设置。 Haproxy(无会话亲和力)。 我想知道,因为该模式似乎是haproxy ...也许这是一个问题,在超时后重新分配请求?

更新:

我们遇到了这个问题。在保存后重定向到更改的对象时会发生这种情况。这是因为第二个请求命中了另一个没有意识到它已经过时的zeo客户端。

我们发现的唯一解决方案是在任何POST期间在haproxy(20s)中添加临时会话关联。不理想,但确实有效。我只是在寻找一个更好的解决方案,这就是为什么我找到了这个老帖子。