Uploaded image for project: 'MongoDB Database Tools'
  1. MongoDB Database Tools
  2. TOOLS-1874

When I use mongodump export data, reported "Failed:" rrkd_activity.coupon_receive_ Alipay welcome "contains a path separator 'branch and can not be dumped to the filesystem

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Duplicate
    • 3.4.10
    • None
    • mongodump
    • None

    Description

      In my database, some of the table is named in Chinese, when I use mongodump export these tables, mongodump reported "Failed: "rrkd_activity.coupon_receive_支付宝迎新" contains a path separator '支' and can't be dumped to the filesystem.

      After my analysis, this error occurred in the checkStringForPathSeparator () function of mongodump.

      func checkStringForPathSeparator(s string, c *rune) bool {
               for _, *c = range s {
                         if os.IsPathSeparator(uint8(*c)) {
                                  return true
                         }
               }
               return false
      }
      
      

      In this function, we call IsPathSeparator () function to determine if the character contains the path separator, but if c is a Chinese, such as "支", his unicode is encoded as \u652f, If only intercepted 8 bits, it coincides with the code of "/", so the "支" is misjudged as the path separator.

      The following is the test program:

      func main() {
               var c rune
               c = '支'
               println(c)
               println(uint8(c))
               c = '/'
               println(c)
      }
      

      The result is:
      25903
      47
      47

      Attachments

        Issue Links

          Activity

            People

              david.golden@mongodb.com David Golden
              sleier lake
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: