shadow 0 → 1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +1 -0
- data/Manifest +8 -0
- data/Rakefile +1 -1
- data/bin/shadow +12 -0
- data/lib/shadow.rb +70 -0
- data/test/database.yml +7 -0
- data/test/integration/test_shadow.rb +84 -0
- data/test/log/mongrel_debug/access.log +7 -0
- data/test/log/mongrel_debug/files.log +575 -0
- data/test/log/mongrel_debug/objects.log +0 -0
- data/test/log/mongrel_debug/threads.log +8006 -0
- data/test/schema.rb +28 -0
- metadata +12 -4
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
@@ -3,5 +3,13 @@
|
|
3
3
|
./Manifest
|
4
4
|
./README
|
5
5
|
./Rakefile
|
6
|
+
./bin/shadow
|
6
7
|
./lib/shadow/rake_task_redefine_task.rb
|
7
8
|
./lib/shadow.rb
|
9
|
+
./test/database.yml
|
10
|
+
./test/integration/test_shadow.rb
|
11
|
+
./test/log/mongrel_debug/access.log
|
12
|
+
./test/log/mongrel_debug/files.log
|
13
|
+
./test/log/mongrel_debug/objects.log
|
14
|
+
./test/log/mongrel_debug/threads.log
|
15
|
+
./test/schema.rb
|
data/Rakefile
CHANGED
@@ -40,5 +40,5 @@ end
|
|
40
40
|
|
41
41
|
desc 'Run tests.'
|
42
42
|
Rake::Task.redefine_task("test") do
|
43
|
-
system "ruby -Ibin:lib:test test/
|
43
|
+
system "ruby -Ibin:lib:test test/integration/test_shadow.rb #{ENV['METHOD'] ? "--name=#{ENV['METHOD']}" : ""}"
|
44
44
|
end
|
data/bin/shadow
ADDED
data/lib/shadow.rb
CHANGED
@@ -0,0 +1,70 @@
|
|
1
|
+
|
2
|
+
require 'rubygems'
|
3
|
+
require 'mongrel'
|
4
|
+
require 'active_record'
|
5
|
+
require 'sync'
|
6
|
+
|
7
|
+
class Shadow < Mongrel::HttpHandler
|
8
|
+
attr_reader :pid
|
9
|
+
|
10
|
+
def initialize(config, environment, name, address = '0.0.0.0', port = '2001', sleep = nil)
|
11
|
+
ActiveRecord::Base.establish_connection(YAML.load_file(config)[environment.to_s])
|
12
|
+
ActiveRecord::Base.allow_concurrency = false
|
13
|
+
@sleep = sleep
|
14
|
+
@sync = Sync.new
|
15
|
+
@pid = serve(self, name, address, port)
|
16
|
+
end
|
17
|
+
|
18
|
+
def process(request, response)
|
19
|
+
sleep(rand * @sleep) if @sleep
|
20
|
+
table, id = request.params["PATH_INFO"].split("/")
|
21
|
+
|
22
|
+
obj, code = nil, 200
|
23
|
+
@sync.synchronize(:EX) do # fuckin AR
|
24
|
+
begin
|
25
|
+
obj = find(table, id)
|
26
|
+
case request.params["REQUEST_METHOD"]
|
27
|
+
when "PUT", "POST"
|
28
|
+
obj.update_attributes(YAML.load(request.body.read))
|
29
|
+
obj.save!
|
30
|
+
when "DELETE"
|
31
|
+
obj.destroy
|
32
|
+
end
|
33
|
+
obj = obj.attributes
|
34
|
+
rescue Object => e
|
35
|
+
obj, code = e.to_s, 400
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
response.start(code) do |head, out|
|
40
|
+
head["Content-Type"] = "text/yaml"
|
41
|
+
out.write obj.to_yaml
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def find(table, id)
|
46
|
+
klass = Class.new(ActiveRecord::Base) { self.table_name = table }
|
47
|
+
id ? klass.find(id) : klass.new
|
48
|
+
end
|
49
|
+
|
50
|
+
### configure mongrel ###
|
51
|
+
|
52
|
+
def serve(me, name, address, port)
|
53
|
+
fork do
|
54
|
+
Mongrel::Configurator.new :host => address, :pid_file => "/tmp/shadow.#{name}.pid" do
|
55
|
+
listener :port => port do
|
56
|
+
puts "** Serving at #{address}:#{port}/#{name}/ (pid #{Process.pid})"
|
57
|
+
uri "/#{name}/", :handler => me
|
58
|
+
setup_signals or run and write_pid_file and join
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
### debugging ###
|
65
|
+
|
66
|
+
def self.d
|
67
|
+
require 'ruby-debug'; Debugger.start; debugger
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
data/test/database.yml
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'rfuzz/session'
|
6
|
+
|
7
|
+
DIR = File.dirname(__FILE__)
|
8
|
+
require "#{DIR}/../../lib/shadow"
|
9
|
+
|
10
|
+
class ShadowText < Test::Unit::TestCase
|
11
|
+
APP, HOST, PORT = "menagerie", "0.0.0.0", 2001
|
12
|
+
$client = RFuzz::HttpClient.new(HOST, PORT)
|
13
|
+
$server = Shadow.new("#{DIR}/../database.yml", "test", APP, HOST, PORT, 1)
|
14
|
+
require "#{DIR}/../schema"
|
15
|
+
|
16
|
+
def test_get
|
17
|
+
# successful
|
18
|
+
response = $client.get("/#{APP}/cats/1")
|
19
|
+
assert_match /name: Blue/, response.http_body
|
20
|
+
assert_equal "text/yaml", response["CONTENT_TYPE"]
|
21
|
+
assert_equal "200", response.http_status
|
22
|
+
# missing
|
23
|
+
response = $client.get("/#{APP}/cats/25")
|
24
|
+
assert_match /Couldn't find/, response.http_body
|
25
|
+
assert_equal "400", response.http_status
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_put
|
29
|
+
response = $client.put("/#{APP}/cats", :body => {"name" => "Fluffy", "size" => 4}.to_yaml)
|
30
|
+
assert YAML.load(response.http_body)["id"]
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_post
|
34
|
+
response = $client.put("/#{APP}/cats/2", :body => {"name" => "Tabby"}.to_yaml)
|
35
|
+
assert_equal "Tabby", YAML.load(response.http_body)["name"]
|
36
|
+
response = $client.get("/#{APP}/cats/2")
|
37
|
+
assert_equal "Tabby", YAML.load(response.http_body)["name"]
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_delete
|
41
|
+
response = $client.delete("/#{APP}/dogs/1")
|
42
|
+
assert_match /name: Rover/, response.http_body
|
43
|
+
response = $client.delete("/#{APP}/dogs/1")
|
44
|
+
assert_match /Couldn't find/, response.http_body
|
45
|
+
assert_equal "400", response.http_status
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_concurrent_reads
|
49
|
+
correct_result = $client.get("/#{APP}/cats/1").http_body
|
50
|
+
assert_nothing_raised do
|
51
|
+
pids = []
|
52
|
+
100.times do
|
53
|
+
pids << fork do # can't use Thread because RFuzz isn't threadsafe?
|
54
|
+
result = $client.get("/#{APP}/cats/1").http_body
|
55
|
+
puts "Response error: #{result}" unless correct_result == result
|
56
|
+
end
|
57
|
+
end
|
58
|
+
pids.each {|pid| Process.wait(pid)}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_concurrent_writes
|
63
|
+
assert_nothing_raised do
|
64
|
+
pids = []
|
65
|
+
100.times do
|
66
|
+
pids << fork do
|
67
|
+
result = $client.put("/#{APP}/dogs",
|
68
|
+
:body => {"name" => Process.pid.to_s}.to_yaml)
|
69
|
+
id = YAML.load(result.http_body)["id"]
|
70
|
+
sleep(2)
|
71
|
+
result = $client.get("/#{APP}/dogs/#{id}").http_body
|
72
|
+
puts "Response error: #{result.inspect}" unless result =~ /#{Process.pid}/
|
73
|
+
end
|
74
|
+
end
|
75
|
+
pids.each {|pid| Process.wait(pid)}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_zzzz_im_asleep_zzzzz
|
80
|
+
Process.kill(9, $server.pid)
|
81
|
+
assert "dead"
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# Logfile created on Tue May 15 01:44:24 -0700 2007 by /
|
2
|
+
TRACING ON Tue May 15 01:44:24 -0700 2007
|
3
|
+
TRACING ON Tue May 15 01:45:48 -0700 2007
|
4
|
+
TRACING ON Tue May 15 01:46:03 -0700 2007
|
5
|
+
TRACING ON Tue May 15 01:46:19 -0700 2007
|
6
|
+
TRACING ON Tue May 15 01:46:41 -0700 2007
|
7
|
+
TRACING ON Tue May 15 01:47:30 -0700 2007
|
@@ -0,0 +1,575 @@
|
|
1
|
+
# Logfile created on Tue May 15 01:44:24 -0700 2007 by /
|
2
|
+
TRACING ON Tue May 15 01:44:24 -0700 2007
|
3
|
+
TRACING ON Tue May 15 01:45:48 -0700 2007
|
4
|
+
TRACING ON Tue May 15 01:46:03 -0700 2007
|
5
|
+
TRACING ON Tue May 15 01:46:19 -0700 2007
|
6
|
+
TRACING ON Tue May 15 01:46:41 -0700 2007
|
7
|
+
TRACING ON Tue May 15 01:47:30 -0700 2007
|
8
|
+
Tue May 15 01:47:30 -0700 2007 FILES OPEN BEFORE REQUEST dogs/1
|
9
|
+
---
|
10
|
+
log/mongrel_debug/objects.log: 1
|
11
|
+
log/mongrel_debug/files.log: 1
|
12
|
+
log/mongrel_debug/threads.log: 1
|
13
|
+
log/mongrel_debug/access.log: 1
|
14
|
+
/tmp/shadow.menagerie.pid: 1
|
15
|
+
|
16
|
+
Tue May 15 01:47:31 -0700 2007 FILES OPEN BEFORE REQUEST dogs/1
|
17
|
+
---
|
18
|
+
log/mongrel_debug/objects.log: 1
|
19
|
+
log/mongrel_debug/files.log: 1
|
20
|
+
log/mongrel_debug/threads.log: 1
|
21
|
+
log/mongrel_debug/access.log: 1
|
22
|
+
/tmp/shadow.menagerie.pid: 1
|
23
|
+
|
24
|
+
Tue May 15 01:47:31 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
25
|
+
---
|
26
|
+
log/mongrel_debug/objects.log: 1
|
27
|
+
log/mongrel_debug/files.log: 1
|
28
|
+
log/mongrel_debug/threads.log: 1
|
29
|
+
log/mongrel_debug/access.log: 1
|
30
|
+
/tmp/shadow.menagerie.pid: 1
|
31
|
+
|
32
|
+
Tue May 15 01:47:32 -0700 2007 FILES OPEN BEFORE REQUEST cats/25
|
33
|
+
---
|
34
|
+
log/mongrel_debug/objects.log: 1
|
35
|
+
log/mongrel_debug/files.log: 1
|
36
|
+
log/mongrel_debug/threads.log: 1
|
37
|
+
log/mongrel_debug/access.log: 1
|
38
|
+
/tmp/shadow.menagerie.pid: 1
|
39
|
+
|
40
|
+
Tue May 15 01:47:33 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
41
|
+
---
|
42
|
+
log/mongrel_debug/objects.log: 1
|
43
|
+
log/mongrel_debug/files.log: 1
|
44
|
+
log/mongrel_debug/threads.log: 1
|
45
|
+
log/mongrel_debug/access.log: 1
|
46
|
+
/tmp/shadow.menagerie.pid: 1
|
47
|
+
|
48
|
+
Tue May 15 01:47:33 -0700 2007 FILES OPEN BEFORE REQUEST cats
|
49
|
+
---
|
50
|
+
log/mongrel_debug/objects.log: 1
|
51
|
+
log/mongrel_debug/files.log: 1
|
52
|
+
log/mongrel_debug/threads.log: 1
|
53
|
+
log/mongrel_debug/access.log: 1
|
54
|
+
/tmp/shadow.menagerie.pid: 1
|
55
|
+
|
56
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
57
|
+
---
|
58
|
+
log/mongrel_debug/objects.log: 1
|
59
|
+
log/mongrel_debug/files.log: 1
|
60
|
+
log/mongrel_debug/threads.log: 1
|
61
|
+
log/mongrel_debug/access.log: 1
|
62
|
+
/tmp/shadow.menagerie.pid: 1
|
63
|
+
|
64
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
65
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
66
|
+
---
|
67
|
+
log/mongrel_debug/objects.log: 1
|
68
|
+
log/mongrel_debug/files.log: 1
|
69
|
+
log/mongrel_debug/threads.log: 1
|
70
|
+
log/mongrel_debug/access.log: 1
|
71
|
+
/tmp/shadow.menagerie.pid: 1
|
72
|
+
|
73
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
74
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
75
|
+
---
|
76
|
+
log/mongrel_debug/objects.log: 1
|
77
|
+
log/mongrel_debug/files.log: 1
|
78
|
+
log/mongrel_debug/threads.log: 1
|
79
|
+
log/mongrel_debug/access.log: 1
|
80
|
+
/tmp/shadow.menagerie.pid: 1
|
81
|
+
|
82
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
83
|
+
---
|
84
|
+
log/mongrel_debug/objects.log: 1
|
85
|
+
log/mongrel_debug/files.log: 1
|
86
|
+
log/mongrel_debug/threads.log: 1
|
87
|
+
log/mongrel_debug/access.log: 1
|
88
|
+
/tmp/shadow.menagerie.pid: 1
|
89
|
+
|
90
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
91
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
92
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
93
|
+
---
|
94
|
+
log/mongrel_debug/objects.log: 1
|
95
|
+
log/mongrel_debug/files.log: 1
|
96
|
+
log/mongrel_debug/threads.log: 1
|
97
|
+
log/mongrel_debug/access.log: 1
|
98
|
+
/tmp/shadow.menagerie.pid: 1
|
99
|
+
|
100
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
101
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
102
|
+
---
|
103
|
+
log/mongrel_debug/objects.log: 1
|
104
|
+
log/mongrel_debug/files.log: 1
|
105
|
+
log/mongrel_debug/threads.log: 1
|
106
|
+
log/mongrel_debug/access.log: 1
|
107
|
+
/tmp/shadow.menagerie.pid: 1
|
108
|
+
|
109
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
110
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
111
|
+
---
|
112
|
+
log/mongrel_debug/objects.log: 1
|
113
|
+
log/mongrel_debug/files.log: 1
|
114
|
+
log/mongrel_debug/threads.log: 1
|
115
|
+
log/mongrel_debug/access.log: 1
|
116
|
+
/tmp/shadow.menagerie.pid: 1
|
117
|
+
|
118
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
119
|
+
---
|
120
|
+
log/mongrel_debug/objects.log: 1
|
121
|
+
log/mongrel_debug/files.log: 1
|
122
|
+
log/mongrel_debug/threads.log: 1
|
123
|
+
log/mongrel_debug/access.log: 1
|
124
|
+
/tmp/shadow.menagerie.pid: 1
|
125
|
+
|
126
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
127
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
128
|
+
---
|
129
|
+
log/mongrel_debug/objects.log: 1
|
130
|
+
log/mongrel_debug/files.log: 1
|
131
|
+
log/mongrel_debug/threads.log: 1
|
132
|
+
log/mongrel_debug/access.log: 1
|
133
|
+
/tmp/shadow.menagerie.pid: 1
|
134
|
+
|
135
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
136
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
137
|
+
---
|
138
|
+
log/mongrel_debug/objects.log: 1
|
139
|
+
log/mongrel_debug/files.log: 1
|
140
|
+
log/mongrel_debug/threads.log: 1
|
141
|
+
log/mongrel_debug/access.log: 1
|
142
|
+
/tmp/shadow.menagerie.pid: 1
|
143
|
+
|
144
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
145
|
+
---
|
146
|
+
log/mongrel_debug/objects.log: 1
|
147
|
+
log/mongrel_debug/files.log: 1
|
148
|
+
log/mongrel_debug/threads.log: 1
|
149
|
+
log/mongrel_debug/access.log: 1
|
150
|
+
/tmp/shadow.menagerie.pid: 1
|
151
|
+
|
152
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
153
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
154
|
+
---
|
155
|
+
log/mongrel_debug/objects.log: 1
|
156
|
+
log/mongrel_debug/files.log: 1
|
157
|
+
log/mongrel_debug/threads.log: 1
|
158
|
+
log/mongrel_debug/access.log: 1
|
159
|
+
/tmp/shadow.menagerie.pid: 1
|
160
|
+
|
161
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
162
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
163
|
+
---
|
164
|
+
log/mongrel_debug/objects.log: 1
|
165
|
+
log/mongrel_debug/files.log: 1
|
166
|
+
log/mongrel_debug/threads.log: 1
|
167
|
+
log/mongrel_debug/access.log: 1
|
168
|
+
/tmp/shadow.menagerie.pid: 1
|
169
|
+
|
170
|
+
Tue May 15 01:47:34 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
171
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
172
|
+
---
|
173
|
+
log/mongrel_debug/objects.log: 1
|
174
|
+
log/mongrel_debug/files.log: 1
|
175
|
+
log/mongrel_debug/threads.log: 1
|
176
|
+
log/mongrel_debug/access.log: 1
|
177
|
+
/tmp/shadow.menagerie.pid: 1
|
178
|
+
|
179
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
180
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
181
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
182
|
+
---
|
183
|
+
log/mongrel_debug/objects.log: 1
|
184
|
+
log/mongrel_debug/files.log: 1
|
185
|
+
log/mongrel_debug/threads.log: 1
|
186
|
+
log/mongrel_debug/access.log: 1
|
187
|
+
/tmp/shadow.menagerie.pid: 1
|
188
|
+
|
189
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
190
|
+
---
|
191
|
+
log/mongrel_debug/objects.log: 1
|
192
|
+
log/mongrel_debug/files.log: 1
|
193
|
+
log/mongrel_debug/threads.log: 1
|
194
|
+
log/mongrel_debug/access.log: 1
|
195
|
+
/tmp/shadow.menagerie.pid: 1
|
196
|
+
|
197
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
198
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
199
|
+
---
|
200
|
+
log/mongrel_debug/objects.log: 1
|
201
|
+
log/mongrel_debug/files.log: 1
|
202
|
+
log/mongrel_debug/threads.log: 1
|
203
|
+
log/mongrel_debug/access.log: 1
|
204
|
+
/tmp/shadow.menagerie.pid: 1
|
205
|
+
|
206
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
207
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
208
|
+
---
|
209
|
+
log/mongrel_debug/objects.log: 1
|
210
|
+
log/mongrel_debug/files.log: 1
|
211
|
+
log/mongrel_debug/threads.log: 1
|
212
|
+
log/mongrel_debug/access.log: 1
|
213
|
+
/tmp/shadow.menagerie.pid: 1
|
214
|
+
|
215
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
216
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
217
|
+
---
|
218
|
+
log/mongrel_debug/objects.log: 1
|
219
|
+
log/mongrel_debug/files.log: 1
|
220
|
+
log/mongrel_debug/threads.log: 1
|
221
|
+
log/mongrel_debug/access.log: 1
|
222
|
+
/tmp/shadow.menagerie.pid: 1
|
223
|
+
|
224
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
225
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
226
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
227
|
+
---
|
228
|
+
log/mongrel_debug/objects.log: 1
|
229
|
+
log/mongrel_debug/files.log: 1
|
230
|
+
log/mongrel_debug/threads.log: 1
|
231
|
+
log/mongrel_debug/access.log: 1
|
232
|
+
/tmp/shadow.menagerie.pid: 1
|
233
|
+
|
234
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
235
|
+
---
|
236
|
+
log/mongrel_debug/objects.log: 1
|
237
|
+
log/mongrel_debug/files.log: 1
|
238
|
+
log/mongrel_debug/threads.log: 1
|
239
|
+
log/mongrel_debug/access.log: 1
|
240
|
+
/tmp/shadow.menagerie.pid: 1
|
241
|
+
|
242
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
243
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
244
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
245
|
+
---
|
246
|
+
log/mongrel_debug/objects.log: 1
|
247
|
+
log/mongrel_debug/files.log: 1
|
248
|
+
log/mongrel_debug/threads.log: 1
|
249
|
+
log/mongrel_debug/access.log: 1
|
250
|
+
/tmp/shadow.menagerie.pid: 1
|
251
|
+
|
252
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
253
|
+
---
|
254
|
+
log/mongrel_debug/objects.log: 1
|
255
|
+
log/mongrel_debug/files.log: 1
|
256
|
+
log/mongrel_debug/threads.log: 1
|
257
|
+
log/mongrel_debug/access.log: 1
|
258
|
+
/tmp/shadow.menagerie.pid: 1
|
259
|
+
|
260
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
261
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
262
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
263
|
+
---
|
264
|
+
log/mongrel_debug/objects.log: 1
|
265
|
+
log/mongrel_debug/files.log: 1
|
266
|
+
log/mongrel_debug/threads.log: 1
|
267
|
+
log/mongrel_debug/access.log: 1
|
268
|
+
/tmp/shadow.menagerie.pid: 1
|
269
|
+
|
270
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
271
|
+
---
|
272
|
+
log/mongrel_debug/objects.log: 1
|
273
|
+
log/mongrel_debug/files.log: 1
|
274
|
+
log/mongrel_debug/threads.log: 1
|
275
|
+
log/mongrel_debug/access.log: 1
|
276
|
+
/tmp/shadow.menagerie.pid: 1
|
277
|
+
|
278
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
279
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
280
|
+
---
|
281
|
+
log/mongrel_debug/objects.log: 1
|
282
|
+
log/mongrel_debug/files.log: 1
|
283
|
+
log/mongrel_debug/threads.log: 1
|
284
|
+
log/mongrel_debug/access.log: 1
|
285
|
+
/tmp/shadow.menagerie.pid: 1
|
286
|
+
|
287
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
288
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
289
|
+
---
|
290
|
+
log/mongrel_debug/objects.log: 1
|
291
|
+
log/mongrel_debug/files.log: 1
|
292
|
+
log/mongrel_debug/threads.log: 1
|
293
|
+
log/mongrel_debug/access.log: 1
|
294
|
+
/tmp/shadow.menagerie.pid: 1
|
295
|
+
|
296
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
297
|
+
---
|
298
|
+
log/mongrel_debug/objects.log: 1
|
299
|
+
log/mongrel_debug/files.log: 1
|
300
|
+
log/mongrel_debug/threads.log: 1
|
301
|
+
log/mongrel_debug/access.log: 1
|
302
|
+
/tmp/shadow.menagerie.pid: 1
|
303
|
+
|
304
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
305
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
306
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
307
|
+
---
|
308
|
+
log/mongrel_debug/objects.log: 1
|
309
|
+
log/mongrel_debug/files.log: 1
|
310
|
+
log/mongrel_debug/threads.log: 1
|
311
|
+
log/mongrel_debug/access.log: 1
|
312
|
+
/tmp/shadow.menagerie.pid: 1
|
313
|
+
|
314
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
315
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
316
|
+
---
|
317
|
+
log/mongrel_debug/objects.log: 1
|
318
|
+
log/mongrel_debug/files.log: 1
|
319
|
+
log/mongrel_debug/threads.log: 1
|
320
|
+
log/mongrel_debug/access.log: 1
|
321
|
+
/tmp/shadow.menagerie.pid: 1
|
322
|
+
|
323
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
324
|
+
---
|
325
|
+
log/mongrel_debug/objects.log: 1
|
326
|
+
log/mongrel_debug/files.log: 1
|
327
|
+
log/mongrel_debug/threads.log: 1
|
328
|
+
log/mongrel_debug/access.log: 1
|
329
|
+
/tmp/shadow.menagerie.pid: 1
|
330
|
+
|
331
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
332
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
333
|
+
Tue May 15 01:47:35 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
334
|
+
---
|
335
|
+
log/mongrel_debug/objects.log: 1
|
336
|
+
log/mongrel_debug/files.log: 1
|
337
|
+
log/mongrel_debug/threads.log: 1
|
338
|
+
log/mongrel_debug/access.log: 1
|
339
|
+
/tmp/shadow.menagerie.pid: 1
|
340
|
+
|
341
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
342
|
+
---
|
343
|
+
log/mongrel_debug/objects.log: 1
|
344
|
+
log/mongrel_debug/files.log: 1
|
345
|
+
log/mongrel_debug/threads.log: 1
|
346
|
+
log/mongrel_debug/access.log: 1
|
347
|
+
/tmp/shadow.menagerie.pid: 1
|
348
|
+
|
349
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
350
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
351
|
+
Tue May 15 01:47:36 -0700 2007 FILES OPEN BEFORE REQUEST cats/1
|
352
|
+
---
|
353
|
+
log/mongrel_debug/objects.log: 1
|
354
|
+
log/mongrel_debug/files.log: 1
|
355
|
+
log/mongrel_debug/threads.log: 1
|
356
|
+
log/mongrel_debug/access.log: 1
|
357
|
+
/tmp/shadow.menagerie.pid: 1
|
358
|
+
|
359
|
+
---
|
360
|
+
log/mongrel_debug/objects.log: 1
|
361
|
+
log/mongrel_debug/files.log: 1
|
362
|
+
log/mongrel_debug/threads.log: 1
|
363
|
+
log/mongrel_debug/access.log: 1
|
364
|
+
/tmp/shadow.menagerie.pid: 1
|
365
|
+
|
366
|
+
---
|
367
|
+
log/mongrel_debug/objects.log: 1
|
368
|
+
log/mongrel_debug/files.log: 1
|
369
|
+
log/mongrel_debug/threads.log: 1
|
370
|
+
log/mongrel_debug/access.log: 1
|
371
|
+
/tmp/shadow.menagerie.pid: 1
|
372
|
+
|
373
|
+
---
|
374
|
+
log/mongrel_debug/objects.log: 1
|
375
|
+
log/mongrel_debug/files.log: 1
|
376
|
+
log/mongrel_debug/threads.log: 1
|
377
|
+
log/mongrel_debug/access.log: 1
|
378
|
+
/tmp/shadow.menagerie.pid: 1
|
379
|
+
|
380
|
+
---
|
381
|
+
log/mongrel_debug/objects.log: 1
|
382
|
+
log/mongrel_debug/files.log: 1
|
383
|
+
log/mongrel_debug/threads.log: 1
|
384
|
+
log/mongrel_debug/access.log: 1
|
385
|
+
/tmp/shadow.menagerie.pid: 1
|
386
|
+
|
387
|
+
---
|
388
|
+
log/mongrel_debug/objects.log: 1
|
389
|
+
log/mongrel_debug/files.log: 1
|
390
|
+
log/mongrel_debug/threads.log: 1
|
391
|
+
log/mongrel_debug/access.log: 1
|
392
|
+
/tmp/shadow.menagerie.pid: 1
|
393
|
+
|
394
|
+
---
|
395
|
+
log/mongrel_debug/objects.log: 1
|
396
|
+
log/mongrel_debug/files.log: 1
|
397
|
+
log/mongrel_debug/threads.log: 1
|
398
|
+
log/mongrel_debug/access.log: 1
|
399
|
+
/tmp/shadow.menagerie.pid: 1
|
400
|
+
|
401
|
+
---
|
402
|
+
log/mongrel_debug/objects.log: 1
|
403
|
+
log/mongrel_debug/files.log: 1
|
404
|
+
log/mongrel_debug/threads.log: 1
|
405
|
+
log/mongrel_debug/access.log: 1
|
406
|
+
/tmp/shadow.menagerie.pid: 1
|
407
|
+
|
408
|
+
---
|
409
|
+
log/mongrel_debug/objects.log: 1
|
410
|
+
log/mongrel_debug/files.log: 1
|
411
|
+
log/mongrel_debug/threads.log: 1
|
412
|
+
log/mongrel_debug/access.log: 1
|
413
|
+
/tmp/shadow.menagerie.pid: 1
|
414
|
+
|
415
|
+
---
|
416
|
+
log/mongrel_debug/objects.log: 1
|
417
|
+
log/mongrel_debug/files.log: 1
|
418
|
+
log/mongrel_debug/threads.log: 1
|
419
|
+
log/mongrel_debug/access.log: 1
|
420
|
+
/tmp/shadow.menagerie.pid: 1
|
421
|
+
|
422
|
+
---
|
423
|
+
log/mongrel_debug/objects.log: 1
|
424
|
+
log/mongrel_debug/files.log: 1
|
425
|
+
log/mongrel_debug/threads.log: 1
|
426
|
+
log/mongrel_debug/access.log: 1
|
427
|
+
/tmp/shadow.menagerie.pid: 1
|
428
|
+
|
429
|
+
---
|
430
|
+
log/mongrel_debug/objects.log: 1
|
431
|
+
log/mongrel_debug/files.log: 1
|
432
|
+
log/mongrel_debug/threads.log: 1
|
433
|
+
log/mongrel_debug/access.log: 1
|
434
|
+
/tmp/shadow.menagerie.pid: 1
|
435
|
+
|
436
|
+
---
|
437
|
+
log/mongrel_debug/objects.log: 1
|
438
|
+
log/mongrel_debug/files.log: 1
|
439
|
+
log/mongrel_debug/threads.log: 1
|
440
|
+
log/mongrel_debug/access.log: 1
|
441
|
+
/tmp/shadow.menagerie.pid: 1
|
442
|
+
|
443
|
+
---
|
444
|
+
log/mongrel_debug/objects.log: 1
|
445
|
+
log/mongrel_debug/files.log: 1
|
446
|
+
log/mongrel_debug/threads.log: 1
|
447
|
+
log/mongrel_debug/access.log: 1
|
448
|
+
/tmp/shadow.menagerie.pid: 1
|
449
|
+
|
450
|
+
---
|
451
|
+
log/mongrel_debug/objects.log: 1
|
452
|
+
log/mongrel_debug/files.log: 1
|
453
|
+
log/mongrel_debug/threads.log: 1
|
454
|
+
log/mongrel_debug/access.log: 1
|
455
|
+
/tmp/shadow.menagerie.pid: 1
|
456
|
+
|
457
|
+
---
|
458
|
+
log/mongrel_debug/objects.log: 1
|
459
|
+
log/mongrel_debug/files.log: 1
|
460
|
+
log/mongrel_debug/threads.log: 1
|
461
|
+
log/mongrel_debug/access.log: 1
|
462
|
+
/tmp/shadow.menagerie.pid: 1
|
463
|
+
|
464
|
+
---
|
465
|
+
log/mongrel_debug/objects.log: 1
|
466
|
+
log/mongrel_debug/files.log: 1
|
467
|
+
log/mongrel_debug/threads.log: 1
|
468
|
+
log/mongrel_debug/access.log: 1
|
469
|
+
/tmp/shadow.menagerie.pid: 1
|
470
|
+
|
471
|
+
---
|
472
|
+
log/mongrel_debug/objects.log: 1
|
473
|
+
log/mongrel_debug/files.log: 1
|
474
|
+
log/mongrel_debug/threads.log: 1
|
475
|
+
log/mongrel_debug/access.log: 1
|
476
|
+
/tmp/shadow.menagerie.pid: 1
|
477
|
+
|
478
|
+
---
|
479
|
+
log/mongrel_debug/objects.log: 1
|
480
|
+
log/mongrel_debug/files.log: 1
|
481
|
+
log/mongrel_debug/threads.log: 1
|
482
|
+
log/mongrel_debug/access.log: 1
|
483
|
+
/tmp/shadow.menagerie.pid: 1
|
484
|
+
|
485
|
+
---
|
486
|
+
log/mongrel_debug/objects.log: 1
|
487
|
+
log/mongrel_debug/files.log: 1
|
488
|
+
log/mongrel_debug/threads.log: 1
|
489
|
+
log/mongrel_debug/access.log: 1
|
490
|
+
/tmp/shadow.menagerie.pid: 1
|
491
|
+
|
492
|
+
---
|
493
|
+
log/mongrel_debug/objects.log: 1
|
494
|
+
log/mongrel_debug/files.log: 1
|
495
|
+
log/mongrel_debug/threads.log: 1
|
496
|
+
log/mongrel_debug/access.log: 1
|
497
|
+
/tmp/shadow.menagerie.pid: 1
|
498
|
+
|
499
|
+
---
|
500
|
+
log/mongrel_debug/objects.log: 1
|
501
|
+
log/mongrel_debug/files.log: 1
|
502
|
+
log/mongrel_debug/threads.log: 1
|
503
|
+
log/mongrel_debug/access.log: 1
|
504
|
+
/tmp/shadow.menagerie.pid: 1
|
505
|
+
|
506
|
+
---
|
507
|
+
log/mongrel_debug/objects.log: 1
|
508
|
+
log/mongrel_debug/files.log: 1
|
509
|
+
log/mongrel_debug/threads.log: 1
|
510
|
+
log/mongrel_debug/access.log: 1
|
511
|
+
/tmp/shadow.menagerie.pid: 1
|
512
|
+
|
513
|
+
---
|
514
|
+
log/mongrel_debug/objects.log: 1
|
515
|
+
log/mongrel_debug/files.log: 1
|
516
|
+
log/mongrel_debug/threads.log: 1
|
517
|
+
log/mongrel_debug/access.log: 1
|
518
|
+
/tmp/shadow.menagerie.pid: 1
|
519
|
+
|
520
|
+
---
|
521
|
+
log/mongrel_debug/objects.log: 1
|
522
|
+
log/mongrel_debug/files.log: 1
|
523
|
+
log/mongrel_debug/threads.log: 1
|
524
|
+
log/mongrel_debug/access.log: 1
|
525
|
+
/tmp/shadow.menagerie.pid: 1
|
526
|
+
|
527
|
+
---
|
528
|
+
log/mongrel_debug/objects.log: 1
|
529
|
+
log/mongrel_debug/files.log: 1
|
530
|
+
log/mongrel_debug/threads.log: 1
|
531
|
+
log/mongrel_debug/access.log: 1
|
532
|
+
/tmp/shadow.menagerie.pid: 1
|
533
|
+
|
534
|
+
---
|
535
|
+
log/mongrel_debug/objects.log: 1
|
536
|
+
log/mongrel_debug/files.log: 1
|
537
|
+
log/mongrel_debug/threads.log: 1
|
538
|
+
log/mongrel_debug/access.log: 1
|
539
|
+
/tmp/shadow.menagerie.pid: 1
|
540
|
+
|
541
|
+
---
|
542
|
+
log/mongrel_debug/objects.log: 1
|
543
|
+
log/mongrel_debug/files.log: 1
|
544
|
+
log/mongrel_debug/threads.log: 1
|
545
|
+
log/mongrel_debug/access.log: 1
|
546
|
+
/tmp/shadow.menagerie.pid: 1
|
547
|
+
|
548
|
+
---
|
549
|
+
log/mongrel_debug/objects.log: 1
|
550
|
+
log/mongrel_debug/files.log: 1
|
551
|
+
log/mongrel_debug/threads.log: 1
|
552
|
+
log/mongrel_debug/access.log: 1
|
553
|
+
/tmp/shadow.menagerie.pid: 1
|
554
|
+
|
555
|
+
---
|
556
|
+
log/mongrel_debug/objects.log: 1
|
557
|
+
log/mongrel_debug/files.log: 1
|
558
|
+
log/mongrel_debug/threads.log: 1
|
559
|
+
log/mongrel_debug/access.log: 1
|
560
|
+
/tmp/shadow.menagerie.pid: 1
|
561
|
+
|
562
|
+
---
|
563
|
+
log/mongrel_debug/objects.log: 1
|
564
|
+
log/mongrel_debug/files.log: 1
|
565
|
+
log/mongrel_debug/threads.log: 1
|
566
|
+
log/mongrel_debug/access.log: 1
|
567
|
+
/tmp/shadow.menagerie.pid: 1
|
568
|
+
|
569
|
+
---
|
570
|
+
log/mongrel_debug/objects.log: 1
|
571
|
+
log/mongrel_debug/files.log: 1
|
572
|
+
log/mongrel_debug/threads.log: 1
|
573
|
+
log/mongrel_debug/access.log: 1
|
574
|
+
/tmp/shadow.menagerie.pid: 1
|
575
|
+
|